Wie Übergeben eines Zeichenfolgenparameters mit dem Operator 'IN' in der gespeicherten Prozedur SQL Server 2008

8

Ich habe eine gespeicherte Prozedur, wenn ich es ausführe, habe ich Fehler

  

Die Konvertierung ist fehlgeschlagen, wenn der Varchar-Wert '+ @ dptId +' in den Datentyp int

konvertiert wurde

Ich bekomme DepartmentId als String wie (1,3,5,77) und gebe das an meine gespeicherte Prozedur weiter.

SQL FIDDLE

%Vor%

Abfrage Ich habe versucht:

%Vor%     
Satinder singh 01.06.2013, 11:11
quelle

4 Antworten

14

Hier ist, wie ich es gelöst habe: SQL-Geige bearbeiten

Zuerst habe ich eine Funktion erstellt, die den String-Wert teilt, d. h. '1,2,4,5'

Funktion teilen :

%Vor%

Später in meiner Abfrage verwende ich diese Split-Funktion

%Vor%     
Satinder singh 01.06.2013, 12:07
quelle
2

Verwenden Sie sp_executesql als Antwort. Nicht die effizienteste, aber es funktioniert

%Vor%     
Pierrie Fields 12.07.2013 14:10
quelle
1

Sie können einfach Folgendes tun SELECT :

%Vor%     
Mike Darwish 29.09.2016 06:51
quelle
0
%Vor%     
Jatin Lathiya 13.01.2016 10:32
quelle