sql >> Database >  >> RDS >> Sqlserver

Is het mogelijk om queryparameters te gebruiken om het IN-sleutelwoord in te vullen?

U kunt de lijst met GUID's doorgeven als een door komma's gescheiden tekenreeksparameter en een tabelwaarde UDF gebruiken om ze op te splitsen in een tabel om te gebruiken in uw IN clausule:

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

Erland Sommarskog heeft een interessant artikel met voorbeelden van het splitsen van door komma's gescheiden tekenreeksen in tabellen met behulp van een UDF.

(Om prestatieredenen moet u ervoor zorgen dat uw UDF inline tabelwaarde heeft in plaats van multi-statement.)




  1. Verschil tussen deze twee benaderingen van samenvoegingstafels?

  2. JdbcTemplate - Oracle BLOB invoegen of bijwerken met SQL MERGE

  3. MySQL-query IN()-clausule traag op geïndexeerde kolom

  4. Gegevens exporteren vanuit een weergave