2012-08-23 37 views
2

如何将此MySQL查询放入SQL Server等效项中?将IF从子句从MySQL移植到SQL Server 2005中

SELECT User.id, User.first, User.last, 
IF (User.first = q1 OR User.first = q2, 1, 0) + 
IF (User.last = q1 OR User.last = q2, 1, 0) as points 
FROM users as User 
ORDER BY points DESC 

回答

4

相当于IF在SQL Server是CASE expression。 (或IIF in SQL Server 2012。)我也删除了在这种情况下似乎毫无意义的别名。

SELECT id, first, last, 
    CASE WHEN first IN (q1,q2) THEN 1 ELSE 0 END 
    + CASE WHEN last IN (q1,q2) THEN 1 ELSE 0 END AS points 
FROM dbo.users 
ORDER BY points DESC;