gpt4 book ai didi

sql - 当 ColumnName 为变量时按大小写排序

转载 作者:行者123 更新时间:2023-12-04 22:41:58 26 4
gpt4 key购买 nike

我见过很多例子,人们在 Select 语句的 ORDER BY 子句中使用 CASE WHEN。通常,他们将变量的值与列名称的字符串进行比较。

这很好,但是当你有一张非常宽的 table 时呢?

你能不能不说这样的话

ORDER BY 
CASE WHEN @SortDesc = 1 THEN @SortField END DESC,
CASE WHEN @SortDesc = 0 THEN @SortField END ASC

或者您真的必须为结果集中的每个 列设置一个CASE WHEN 吗?编辑:请注意,这是从 SQL 字符串转换为普通的旧 SQL,因此动态构建和执行它不是一个选项。

最佳答案

你可以为这样的东西建立一个动态的 sql 字符串:

DECLARE @SortDesc varchar(max)
SELECT @SortDesc = [query to get your Sort column name].

DECLARE @sql varchar(max) = 'SELECT * FROM TABLE ORDER BY ' + @SortDesc

exec(@sql)

关于sql - 当 ColumnName 为变量时按大小写排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36653317/

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