1. ホーム
  2. tsql

[解決済み] Microsoft tSQL で行が見つからなかった場合に値を返します。

2022-10-13 10:49:13

質問

を使うことで マイクロソフト バージョンのSQLを使用して、ここに私の簡単なクエリを示します。もし、存在しないレコードに問い合わせると、何も返されません。私はそのシナリオで偽(0)が返されることを望みます。レコードがないことを説明する最も簡単な方法を探しています。

SELECT  CASE
            WHEN S.Id IS NOT NULL AND S.Status = 1 AND (S.WebUserId = @WebUserId OR S.AllowUploads = 1) THEN 1
            ELSE 0
        END AS [Value]

        FROM Sites S

        WHERE S.Id = @SiteId

どのように解決するのですか?

SELECT CASE WHEN COUNT(1) > 0 THEN 1 ELSE 0 END AS [Value]

FROM Sites S

WHERE S.Id = @SiteId and S.Status = 1 AND 
      (S.WebUserId = @WebUserId OR S.AllowUploads = 1)