外部 ID とローカル ID の間のマッピングであるテーブルがあります。
このテーブルが全単射であるかどうかを調べるクエリを作成する必要がありました。私はこれを思いついた
IF 1 <> ANY(
SELECT COUNT(foreignId)
FROM mappingTable
GROUP BY localId
)
BEGIN
SELECT 'Oh noes!'
END
ELSE BEGIN
SELECT 'Everything is fine.'
END
私の上司はこれを見て顔をしかめ、代わりにこれを書くべきだったと私に言いました:
IF EXISTS(
SELECT NULL
FROM mappingTable
GROUP BY localId
HAVING COUNT(foreignId) <> 1
)
BEGIN
SELECT 'Oh noes!'
END
ELSE BEGIN
SELECT 'Everything is fine.'
END
私の質問は、これらのクエリのどちらがより良いスタイルであるかということです。私はそれらが同等であることを確信しています。