Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ist es möglich, Abfrageparameter zu verwenden, um das Schlüsselwort IN zu füllen?

Sie könnten die Liste der GUIDs als durch Kommas getrennte Zeichenfolgenparameter übergeben und eine UDF mit Tabellenwerten verwenden, um sie in eine Tabelle aufzuteilen, die Sie in Ihrem IN verwenden können Klausel:

SELECT *
FROM my_table
WHERE id IN (SELECT id FROM dbo.SplitCSVToTable(@MyCSVParam))

Erland Sommarskog hat einen interessanten Artikel mit Beispielen, wie durch Kommas getrennte Zeichenfolgen mithilfe einer UDF in Tabellen aufgeteilt werden.

(Aus Leistungsgründen sollten Sie sicherstellen, dass Ihre UDF Inline-Tabellenwerte enthält und keine Mehrfachanweisungen enthält.)