応用コードシリーズになります。
今回はSQL構文の「IN句」を便利に使う方法です。
前提.
※今回使用する「STRING_SPLIT」はSQL Server 2016から使用可能となる関数のため、それ以前のバージョンではこの記事で紹介するやり方では実装できませんので、ご了承ください。
やり方.
IN(@PARAMETER)と使用すると、@PARAMETERがカンマ区切りでも正常に絞り込むことができません。
そのため、STRING_SPLIT関数を用いて、カンマ区切りの文字列をテーブル化する必要があります。
1,3,6 ⇒
SELECT
[カラム名1]
,[カラム名2]
,[カラム名3]
…
FROM
[テーブル名]
WHERE
[カラム名1] IN
(
SELECT
value
FROM
string_split(@PARAMETER, [区切り文字列])
)
コード例.
@PARAMETERはカンマ区切りで指定します。
string_split(@PARAMETER, ‘,’)をstring_split(@PARAMETER, ‘%’)に変更する等
好きな区切り文字列へ変更が可能です。
SELECT
ID
,NAME
FROM
EMPLOYEE
WHERE
ID IN
(
SELECT
value
FROM
string_split(@PARAMETER, ‘,’)
)