0
質問の背景:冗長なWHERE句?
私は別の開発者によって編集されたシンプルなストアドプロシージャを持っています。 WHERE句が存在する前に、いくつかのSQLにAND節を追加しました。開発者は、AND句とWHERE句の両方が存在しなければならないと主張しています。
SQL:
SELECT a.NOTIFICATIONID,
a.NOTIFICATIONTYPE,
a.DESCRIPTION,
b.NOTIFICATIONID,
b.SEEN,
b.SEEN_DATE,
b.PROFILEID
FROM dbo.NOTIFICATIONS a
LEFT JOIN dbo.NOTIFICATIONSTATUS b
ON a.NOTIFICATIONID = b.NOTIFICATIONID
AND b.PROFILEID = @profileId
WHERE (b.PROFILEID = @profileId or b.PROFILEID is null)
WHERE (b.DISMISSED = 0 or b.dismissed is null)
私は句が有効で同じ仕事をしているANDとを見ることができるものから。一致するものがあれば結合は自動的にPROFILE_IDをフィルタリングし、WHERE句は同じことを行います。
私は、AND句またはWHERE句のいずれかが必須であるが、両方ではないと想定するのは安全でしょうか?
多くのおかげで、私はSQLをmiscopiedません。 – user1352057
'AND b.PROFILE_ID = @profileId'を削除する必要がありますか? – jarlh
これは正しいです – user1352057