1
私はデータをフェッチするためにストアドプロシージャを使用しています。私は動的にフィルタリングする必要がありました。例えば、idが5、10、または12のデータをフェッチしたい場合は、プロシージャに文字列として送信し、ユーザ定義関数を介してテーブルに変換します。しかし、私はので、ここでのパフォーマンスを考慮する例である必要があります。
ユーザー定義関数とパフォーマンスの使用
解決方法1:
SELECT *
FROM Customers
WHERE CustomerID NOT IN (SELECT Value
FROM dbo.func_ConvertListToTable('4,6,5,1,2,3,9,222',','));
解決策2:パフォーマンスに優れているソリューション
CREATE TABLE #tempTable (Value NVARCHAR(4000));
INSERT INTO #tempTable
SELECT Value FROM dbo.func_ConvertListToTable('4,6,5,1,2,3,9,222',',')
SELECT *
FROM BusinessAds
WHERE AdID NOT IN (SELECT Value FROM #tempTable)
DROP TABLE #tempTable
?