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)