Ich möchte einen Alias für die CASE-Anweisung erstellen, indem ich zwei Zeichenfolgen zusammenfüge. Einer der Strings wird durch eine Variable geleitet und ich kann nicht herausfinden, wie das geht. Unten ist ein Beispiel für das, was ich tun möchte. Ich würde Ihre Hilfe sehr schätzen. Vielen Dank im Voraus.
Code:
CREATE PROCEDURE [dbo].[FEATURE_SET]
@topic NVARCHAR(100)
AS
BEGIN
SELECT
CASE
WHEN colA = @topic AND colB = 'abc'
THEN 1
ELSE 0
END AS CONCAT(@topic, 'outcome')
FROM
dbo.table
END
Die obige Abfrage gibt immer wieder den Fehler "falsche Syntax" aus.
Vielen Dank für Ihre Hilfe.
Wie ich im Kommentar erwähnt habe, benötigen Sie Dynamic SQL. SQL Server unterstützt keine Makroersetzung.
Beispiel
CREATE PROCEDURE [dbo].[FEATURE_SET]
@topic NVARCHAR(100)
AS
BEGIN
Declare @SQL nvarchar(max) = replace(N'
SELECT [getTopicoutcome] = CASE WHEN colA = ''getTopic'' AND colB = ''abc'' THEN 1 ELSE 0 END
FROM dbo.table
','getTopic',@Topic)
--Print @SQL
Exec(@SQL)
END
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen