【发布时间】:2008-10-04 02:52:55
【问题描述】:
我正在研究根据给定一些输入指定的列对表格进行排序,根据我的发现,没有简单的方法可以做到这一点。我发现最好的是一个 switch 语句:
SELECT Column1, Column2, Column3, Column4
FROM Table
ORDER BY CASE WHEN @OrderBY = 'Column1' THEN Column1
WHEN @OrderBY = 'Column2' THEN Column2
WHEN @OrderBY = 'Column3' THEN Column3
WHEN @OrderBY = 'Column4' THEN Column4
是否可以在没有 CASE 这样的声明的情况下执行此操作?如果表格变大并且需要对更多列进行排序,这可能会变得混乱。
我能够做到这一点的唯一方法就是连接一个大的 SQL 字符串,这在某种程度上破坏了存储过程的优势,并使 SQL 难以编写和维护。
【问题讨论】:
标签: sql-server database sql-server-2005