これを動作させるにはどうすればよいですか?値が空でない場合はin節を追加し、値は空白です。私はすでにORを使って試してみましたが、それは実行されますが、私が望む結果は得られません。私は、SQL Serverを使用しています2008年変数が空白であるかどうかに応じて複数の句を追加する(ストアドプロシージャ)SQL Server
は私の変数は次のとおりです。
@orderNumber varchar(max),
@itemCode varchar(max),
@shipTo varchar(max),
@orderQty varchar(max),
@orderType varchar(max)
は今、私はそれが600行の合計があるとして、ストアドプロシージャの束を取り出したが、これは私がやりたい正確に何を説明する必要があります。私は高低を検索しており、これに対する解決策は見つかりませんでした。
クエリは次のとおりです。
AND
CASE WHEN @itemCode != ''
THEN u.ITEM_CODE IN (SELECT items FROM dbo.Split(@itemCode,','))
WHEN @orderType != ''
THEN u.ORDER_TYPE IN (SELECT items FROM dbo.Split(@orderType,','))
WHEN @orderQty != ''
THEN u.ORDER_QTY IN (SELECT items FROM dbo.Split(@orderQty, ','))
WHEN @orderNumber != ''
THEN u.ORDER_NUMBER IN (SELECT items FROM dbo.Split(@orderNumber, ','))
WHEN @shipTo != ''
THEN u.SHIP_TO_NAME in (SELECT items FROM dbo.Split(@shipTo, ','))
END
GROUP BY
u.INVENTORY_ITEM_ID, u.ITEM_CODE,
U.LANGUAGE_DESC,
i.item_box_quantity,
sb.BOX_TYPE, sb.set_box_qty,
ii.ITEM_CODE,
S.SetCode, RELEASED_STATUS,
u.ORDER_TYPE, u.ORDER_QTY, u.ORDER_NUMBER, u.SHIP_TO_NAME
区切りリストの代わりにテーブル値のパラメータを使用することを検討しましたか?これは作業が容易で、どのスプリッタよりも高速になります。 –
私の分割機能はテーブル値関数です。あなたはこれを参照していますか? –
はい。テーブル値のパラメータは信じられないほど速く、扱いが簡単です。 –