一時テーブルとの内部結合を行いたいのですが、別の変数が NULL でない場合のみですか? たとえば、ユーザー テーブルがあり、ユーザー ID をセミコロンで区切った文字列を渡します。これを一時テーブルに読み込み、ユーザーテーブルに対して内部結合しますが、ユーザー ID の文字列が null でない場合のみです。それ以外の場合は、すべてのユーザー行を返したいです。
ストアド プロシージャには次の変数が渡されます。
@UidList varchar(max),
これは、セミコロンで区切られたユーザー ID の文字列です。これは一時テーブルに変換されます
DECLARE @List TABLE (UserUid uniqueidentifier NOT NULL)
次に、別の関数が渡された文字列をテーブルに変換します
IF @UidList IS NOT NULL
INSERT INTO @List(UserUid)
SELECT ItemUid
FROM dbo.AFN_ConvertUidListToTable(@UidList)
次に、ユーザーテーブルに参加します
select * from users
...
inner join @List on users.userid = @List.UserUid`
しかし、渡された文字列 @UidList が null の場合、users テーブル内のすべての行を一致させたいと考えています。