我想根据两个varchar列COL_A
和COL_B
对结果进行排序。
如果COL_A
的值为('val1', 'val2', 'val3')
,我希望它显示在顶部,否则我希望它显示在底部。然后,我想在COL_B上做一个简单的词典排序。在MySQL中,我会这样做:
ORDER BY IF(COL_A IN ('val1', 'val2', 'val3'), 0, 1), COL_B
但这在SQL Server 2008中不起作用。是否有等价的?
答案 0 :(得分:5)
在您尝试过的查询中使用case when
代替IF。
ORDER BY (Case When COL_A IN ('val1', 'val2', 'val3') Then 0 Else 1 End), COL_B
将其替换为您尝试过的查询。
<强> MSDN:强>
http://msdn.microsoft.com/en-IN/library/ms181765.aspx
语法和示例:
教程可能有帮助: