IF EXISTSコマンドを使用して、すでにテーブルにあるPID_GUIDを選択するか、またはテーブルに存在しない場合はPID_GUIDとして使用する値を選択します。コマンドは次のようになります。Existsコマンドで変数を設定する場合
IF EXISTS (SELECT PID_GUID FROM PID WHERE EDI_ID = '12874' OR PID = 'ROBERT' OR PID = 'R595')
BEGIN
SELECT PID_GUID FROM PID WHERE EDI_ID = '12874' OR PID = 'ROBERT' OR PID = 'R595'
End
ELSE
SELECT 'a70600f4-1cff-4284-a2ce-5eb19f47cf19'
ここで私はこれをこのような変数に設定します。
Daclare @OLDPID = VARCHAR(36)
SET @OLDPID = IF EXISTS (SELECT PID_GUID FROM PID WHERE EDI_ID = '12874' OR PID = 'ROBERT' OR PID = 'R595')
BEGIN
SELECT PID_GUID FROM PID WHERE EDI_ID = '12874' OR PID = 'ROBERT' OR PID = 'R595'
End
ELSE
SELECT 'a70600f4-1cff-4284-a2ce-5eb19f47cf19'
SQL2008でこれを行うにはどうすればいいですか?各ステートメントで変数を設定し
'IF EXISTS'は、行が返された場合に' PID_GUID'がNULLかどうかをチェックしません。 – Shawn
@Shawn 'PID_GUID'が' null'であるかどうかは関係ありません。その行が存在する場合のみ – SqlZim
ありがとう、それは私が思ったことです。これはマイクロ・オプティマイゼーションのようなものですが、私たちはできる限りの性能を発揮するシステムを使用していました。私は「存在する」ということを幾分認識しました。私の知る限り、aを選択すると実際の列が選択され、SQLエンジンは列を解析しますが、1はブール値を返します。 – Shawn