Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQLServer2005中的订购方式_Sql Server_Tsql - Fatal编程技术网

Sql server SQLServer2005中的订购方式

Sql server SQLServer2005中的订购方式,sql-server,tsql,Sql Server,Tsql,根据列的值,我必须执行各种排序。如果列b为1,则执行以下查询: select * from a select * from a order by c desc, b 如果列b为0,则执行以下查询: select * from a select * from a order by c desc, b 如何在一个查询中执行此操作?由于没有为b=0的情况提供订单条件,并且t-SQL没有物理订单的表达式,因此有必要在此处使用动态SQL。请首先检查b=0的结果的顺序。由于您没有为b=0的情况提供订

根据列的值,我必须执行各种排序。如果列b为1,则执行以下查询:

select * from a
select * from a order by c desc, b
如果列b为0,则执行以下查询:

select * from a
select * from a order by c desc, b

如何在一个查询中执行此操作?

由于没有为b=0的情况提供订单条件,并且t-SQL没有物理订单的表达式,因此有必要在此处使用动态SQL。请首先检查b=0的结果的顺序。

由于您没有为b=0的情况提供订单条件,并且t-SQL没有物理订单的表达式,因此有必要在此处使用动态SQL。请先检查b=0的结果的顺序。

非常小的诡辩,因为表和列显然是假的,但From子句应该是
From a
该查询按c描述对所有选择进行排序,b如果你是对的,那不起作用,你已经把它改为使用临时表,这意味着你也可以按b订购。一切正常。实际上,b这是我们时区的日期时间,考虑到夏令时,c是夏令时。第二个查询应该在从夏季到冬季的时间变化日执行。在结果中,我希望结果按日期排序,但当日期为更改日期时,我必须使用ORDER by 1 Desc排序。我可以使用没有存储过程和游标的查询来实现这一点吗?这是一个很小的疑问,因为表和列显然是假的,但是From子句应该是
From a
,该查询按c desc对所有选择进行排序,b如果你是对的,那不起作用,你已经把它改为使用临时表,这意味着你也可以按b订购。一切正常。实际上,b这是我们时区的日期时间,考虑到夏令时,c是夏令时。第二个查询应该在从夏季到冬季的时间变化日执行。在结果中,我希望结果按日期排序,但当日期为更改日期时,我必须使用ORDER by 1 Desc排序。我可以使用不带存储过程和游标的查询来完成这项工作吗?该查询按c desc,bif b=1对所有选择进行排序,它按null,null进行排序。i、 它根本不排序,查询按c desc对所有选择进行排序,bif b=1,它按null,null进行排序。i、 它根本不排序
ORDER BY 
    CASE WHEN b = 0 THEN C END DESC, 
    CASE WHEN b = 0 THEN b END