gpt4 book ai didi

sql - SQL Server 2016 中按子句排序的单个案例中的多列

转载 作者:搜寻专家 更新时间:2023-10-30 20:23:13 25 4
gpt4 key购买 nike

我编写了一个查询,其中我有一个条件,可以按如下所示的单个顺序按多列对数据进行排序。

ORDER BY Column1 ASC, Column2 ASC, Column3 ASC

ORDER BY Column1 DESC, Column2 DESC, Column3 DESC

我想按照下面的表达式按条件顺序编写上面的排序

ORDER BY 
CASE WHEN @SortExpression = 'Id ASC' THEN Id END ASC,
CASE WHEN @SortExpression = 'Id DESC' THEN Id END DESC,
CASE WHEN @SortExpression = 'Status ASC' THEN Status END ASC,
CASE WHEN @SortExpression = 'Status DESC' THEN Status END DESC,
CASE WHEN @SortExpression = 'Country ASC' THEN Country Asc, City Asc, Zip Asc END,
CASE WHEN @SortExpression = 'Country DESC' THEN Country DESC, City DESC, Zip DESC END

但上面的查询给出了语法错误。谁能帮我找到解决问题的方法?

最佳答案

CASE WHEN @SortExpression = 'Country ASC' THEN Country Asc, City Asc, Zip Asc END, 没有语法,您需要在 CASE 中编写让每个订单何时

如果 @SortExpression 只设置一个值。如果 CASE WHEN 不匹配条件将返回 NULL 然后 let 将只执行您期望的订单列。

ORDER BY 
CASE WHEN @SortExpression = 'Id ASC' THEN Id END ASC,
CASE WHEN @SortExpression = 'Id DESC' THEN Id END DESC,
CASE WHEN @SortExpression = 'Status ASC' THEN Status END ASC,
CASE WHEN @SortExpression = 'Status DESC' THEN Status END DESC,
CASE WHEN @SortExpression = 'Country ASC' THEN Country END Asc ,
CASE WHEN @SortExpression = 'Country ASC' THEN City END Asc ,
CASE WHEN @SortExpression = 'Country ASC' THEN Zip END Asc ,
CASE WHEN @SortExpression = 'Country DESC' THEN Country END DESC ,
CASE WHEN @SortExpression = 'Country DESC' THEN City END DESC ,
CASE WHEN @SortExpression = 'Country DESC' THEN Zip END DESC

关于sql - SQL Server 2016 中按子句排序的单个案例中的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52676627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com