我想根据两个 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 中不起作用。有等效的吗?
我想根据两个 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 中不起作用。有等效的吗?
在您尝试的查询中使用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
语法和示例:
教程可能有帮助: