gpt4 book ai didi

sql-server - 在 SQL Server 中按多列排序

转载 作者:行者123 更新时间:2023-12-01 15:05:53 25 4
gpt4 key购买 nike

我在 SQL Server 中有一个表,我需要在其中选择数据,并根据值进行排序。例如,

  • 如果排序值为1,那么我需要按column1、column2、column3排序。

  • 如果排序值为 2,那么我需要按第 2 列、第 1 列和第 3 列进行排序。

  • 如果排序值为 3,那么我需要按第 3 列、第 1 列和第 2 列进行排序。

谁能告诉我如何在不使用 if else 的情况下在 SQL 中实现这一点,如下所示:

IF @SortOrder = 1
THEN
SELECT *
FROM table
ORDER BY c1, c2, c3
END

IF @SortOrder = 2
THEN
SELECT *
FROM table
ORDER BY c2, c1, c3
END

IF @SortOrder = 3
THEN
SELECT *
FROM table
ORDER BY c3, c1, c2
END

最佳答案

您可以使用 CASE EXPRESSION 进行条件排序:

SELECT * FROM Table
ORDER BY CASE WHEN @SortOrder = 1 then c1
WHEN @SortOrder = 2 then c2
ELSE c3
END,
CASE WHEN @SortOrder = 1 then c2
ELSE c1
END,
CASE WHEN @SortOrder in(1,2) then c3
ELSE c2
END

关于sql-server - 在 SQL Server 中按多列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36330127/

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