このMySQLクエリをSQLServerと同等のものにするにはどうすればよいですか?
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
このMySQLクエリをSQLServerと同等のものにするにはどうすればよいですか?
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
IF
SQL Serverに相当するのは、CASE
式です。(またはIIF
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;