Wenn ich eine durch Kommata getrennte Liste von Werten haben:Komma getrennte Werte in der Aussage SQL
A1,B2,B3
Wie gebe ich diese in eine Variable und dann in eine SQL-IN-Anweisung bilden.
DECLARE @DATE AS VARCHAR(50)
SELECT @DATE = CONVERT(VARCHAR(8), Getdate(), 112)
--PRINT @DATE
DECLARE @TIME AS VARCHAR(50)
--PRINT TIME
SELECT @TIME = Replace(CONVERT(VARCHAR(5), Getdate(), 108), ':', '')
DECLARE @ID AS VARCHAR(50)
SELECT @ID = Replace(W0128001, 32322, 32323, 3232323, 2323232, ',', ',')
--PRINT @ID
DECLARE @QUERY NVARCHAR(MAX);
SET @QUERY = 'SELECT * INTO BACKUPTABLE_' + @DATE + @TIME
+ '
FROM TABLE
WHERE ID IN (' + '''' + @ID + ''')'
--EXEC @query
PRINT @QUERY
habe ich versucht, eine oben zu tun ersetzen, aber ich will es so, dass ein Endbenutzer in die Werte einfügen können und mein Skript wird von dem Komma kümmern und es richtig bilden. Es sollte auch die letzten Kommas vom Ende entfernen.
Mein Ausgang muss lauten:
SELECT * INTO BACKUPTABLE_201606061503
FROM TABLE
WHERE ID IN ('W0128001','32322','32323','3232323','2323232')
Sieht aus, als ob Sie die richtige Idee haben, so ziemlich. Ich denke, Sie müssen die Abfrage in Klammern einschließen, um SQL Server davon abzuhalten, zu denken, dass Sie ihm den Namen eines SP geben (Wechsel zu 'EXEC (@query)') – Conduit
Ich wollte es nicht bis es ausführen Ich war glücklich mit der "PRINT" – PriceCheaperton
In der Regel Menschen Fehler einen einzelnen Wert, der eine durch Kommas getrennte Zeichenfolge mit einer durch Kommas begrenzten Liste von Werten enthält. Dies scheint jedoch hier nicht der Fall zu sein. Bitte beachten Sie, dass Sql-Server 2008 Tabellenwerte unterstützt, die besser als Komma-getrennte Listen für diese Art von Dingen sind. –