2

我想根据两个 varchar 列COL_ACOL_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 中不起作用。有等效的吗?

4

1 回答 1

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

语法和示例:

http://blog.sqlauthority.com/2007/04/14/sql-server-case-statementexpression-examples-and-explanation/

教程可能有帮助:

http://www.tizag.com/sqlTutorial/sqlcase.php

于 2013-04-23T04:31:51.700 回答