[FIXED] Wie übergebe ich eine durch Kommas getrennte Zeichenfolge an die Where-Klausel in TSQL?

Ausgabe

Ich habe folgende Abfrage. Wenn ich es ausführe, erhalte ich die Fehler. Was ist der beste Weg, dies zu tun?

declare @Slots varchar(50)
set @Slots = '1,2'
select * from Schedules where SlotID in (@Slots)

Fehler:

Nachricht 245, Ebene 16, Status 1, Zeile 5 Konvertierung fehlgeschlagen, als der varchar-Wert ‘1,2’ in den Datentyp int konvertiert wurde.

Lösung

Sie können auch mit der Tabellenwertfunktion STRING_SPLIT JOIN , die eine Zeichenfolge basierend auf einem angegebenen Trennzeichen in Reihen von Teilzeichenfolgen aufteilt. Siehe folgendes Beispiel:

DECLARE @Schedules TABLE(SlotID int);
INSERT @Schedules VALUES (1),(2),(3),(4);

DECLARE @Slots varchar(50);
SET @Slots = '1,2';

SELECT *
FROM @Schedules S
JOIN STRING_SPLIT(@Slots, ',') ON S.SlotID=value


Beantwortet von –
Paweł Dyl


Antwort geprüft von –
Dawn Plyler (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like