【发布时间】:2012-11-03 04:42:15
【问题描述】:
好的,我之前问过类似的问题,但我已经研究过了,并没有专门找到这个。 我有一张表,需要按字段 OptionName(NVarChar) 和 IsActive(BIT) 进行排序。
我需要 DDL 的结果按以下顺序排列:
Option A
Option B
Option C
Options that are Active, by OptionName ASC
Option D
Options that are Inactive, by OptionName ASC
目前为止
ORDER BY CASE WHEN PortalName = 'Company, Inc' THEN 0 ELSE 1 END,
CASE WHEN PortalName = 'Setup' THEN 1 ELSE 2 END,
CASE WHEN PortalName = 'Daily Routine' THEN 2 ELSE 3 END,
CASE WHEN IsActive = 1 THEN 3 ELSE 4 END,
CASE WHEN PortalName = 'Master Option' THEN 4 ELSE 5 END,
PortalName ASC
但这会返回结果为:
Option A
Option B
Option C
Option D
Options that are Active, by OptionName ASC
Options that are Inactive, by OptionName ASC
任何帮助都会很棒!
【问题讨论】:
-
得到了答案:CASE WHEN PortalName = 'Master Option' THEN 9999 ELSE 5 END
标签: sql sql-order-by case