如何在sql中设置自定义订单依据
我有以下疑问:如何在sql中设置自定义订单依据,sql,sql-order-by,substring,customization,Sql,Sql Order By,Substring,Customization,我有以下疑问: select distinct CustomerID, SortOrder, Seq from #result Order By CASE WHEN Substring(SortOrder, 0, 1) = '~' THEN 9999999 else SortOrder END 但是,我收到以下错误消息:如果指定了select DISTINCT,则ORDER BY items必须出现在select列表中 如何以正确的方式创建此自定义订单?请改用分组
select distinct CustomerID, SortOrder, Seq
from #result
Order By CASE
WHEN Substring(SortOrder, 0, 1) = '~' THEN 9999999
else SortOrder
END
但是,我收到以下错误消息:如果指定了select DISTINCT,则ORDER BY items必须出现在select列表中
如何以正确的方式创建此自定义订单?请改用
分组方式
:
select CustomerID, SortOrder, Seq
from #result
group by CustomerID, SortOrder, Seq
Order By (CASE WHEN Substring(SortOrder, 0, 1) = '~' THEN 9999999
else SortOrder
END);
使用
分组依据
:
select CustomerID, SortOrder, Seq
from #result
group by CustomerID, SortOrder, Seq
Order By (CASE WHEN Substring(SortOrder, 0, 1) = '~' THEN 9999999
else SortOrder
END);
如果您不介意获得额外的列,那么只需在结果集中包含您的case语句:
SELECT DISTINCT
CustomerID,
SortOrder,
CASE
WHEN Substring(SortOrder, 0, 1) = '~' THEN 9999999
ELSE SortOrder
END
FROM
#result
ORDER BY
CASE
WHEN Substring(SortOrder, 0, 1) = '~' THEN 9999999
ELSE SortOrder
END
如果您不介意获得额外的列,那么只需在结果集中包含您的case语句:
SELECT DISTINCT
CustomerID,
SortOrder,
CASE
WHEN Substring(SortOrder, 0, 1) = '~' THEN 9999999
ELSE SortOrder
END
FROM
#result
ORDER BY
CASE
WHEN Substring(SortOrder, 0, 1) = '~' THEN 9999999
ELSE SortOrder
END