2016-06-08 9 views
1

I unten Code habenSQL COALESCE Modifikation

SELECT @email = COALESCE(@email + ', ', '') + Email 
FROM dbo.FTX_ALERTUSER WITH (NOLOCK) 
WHERE AlertID = 9017 AND Email IS NOT NULL 

SELECT @email2 = VENDOREMAIL 
FROM FTX_NCMR_VENDOR_REQUIREMENT WITH(NOLOCK) 
WHERE VENDORCODE = @param1 AND BU = @param2 

SELECT @email = @email + ',' + ISNULL(@email2,''' ''') 

Welche Saite schafft

[ftx_alert_list] 'updateLastRunDT','9017','FTX-Software, [email protected], [email protected], [email protected], [email protected],' '','FTX_F20160607004' 

ich diese Zeichenfolge wie

[ftx_alert_list] 'updateLastRunDT','9017','FTX-Software, [email protected], [email protected], [email protected], [email protected]','','FTX_F20160607004'` 

Der einzige Unterschied korrigieren wollen, ist ,' '', ich ','', wollen nach [email protected]

+0

Was ist die genaue Ausgabe von '@ email' und' @ email2'? – Arulkumar

+0

@Arulkumar @ email = 'FTX-Software, [email protected], [email protected], [email protected], [email protected],' – user6363065

+0

und für @ email2 = '', – user6363065

Antwort

1

Können Sie die letzte Zeile wie folgt ändern. Mit SUBSTRING können Sie nur Ihre erwarteten Zeichen erhalten.

SELECT @email = '''' + SUBSTRING(@email, 0, LEN(@email)) + '''' + ',' + ISNULL(@email2,''' ''') 

Beispielausführung mit den angegebenen Daten.

DECLARE @FTX_ALERTUSER TABLE(Email VARCHAR (50)); 

INSERT INTO @FTX_ALERTUSER (Email) VALUES 
('FTX-Software'), ('[email protected]'), ('[email protected]'), ('[email protected]'), ('[email protected]'); 

DECLARE @FTX_NCMR_VENDOR_REQUIREMENT TABLE (VENDOREMAIL VARCHAR (50)); 

INSERT INTO @FTX_NCMR_VENDOR_REQUIREMENT (VENDOREMAIL) VALUES (NULL); 

DECLARE @email AS VARCHAR (MAX) = ''; 
DECLARE @email2 AS VARCHAR (MAX) = ''; 

SELECT @email = @email + COALESCE(Email + ', ', '') 
FROM @FTX_ALERTUSER 

--SELECT @email 

SELECT @email2 = VENDOREMAIL 
FROM @FTX_NCMR_VENDOR_REQUIREMENT 

--SELECT @email2 

SELECT @email = '''' + SUBSTRING(@email, 0, LEN(@email)) + '''' + ',' + ISNULL(@email2, ''' ''') 

SELECT @email 
+0

Danke ..work für mich. – user6363065

+0

@ user6363065 Gern geschehen :) – Arulkumar