简体   繁体   中英

Get value from STUFF function in T-SQL

I have this query:

SELECT STUFF(
(
    SELECT ' '+CONVERT(VARCHAR(MAX), R.ID)+' '+O.DisplayName+' : '+CONVERT(NVARCHAR(MAX), R.Value)
    FROM AA_V_PHR_CCD_ResultsXResults R 
        INNER JOIN AA_V_PHR_CCD_ResultsObservationXLANGUAGES O
        ON R.IDResultObservation = O.ID 
    WHERE IDResults = @ID_ESAME   AND O.IDLanguage = 2
    FOR XML PATH('')

), 1, 1, '') [data];

Now I should to execute this query from my Store Procedure. This query result this Message:

data
1604 HBsAg : 0.140 1605 HBsAb : 0.000 1606 HCV : 0.020

Now I want to put this result in my variables to execute other operation, so I have do this:

BEGIN
DECLARE @TEXT AS NVARCHAR(4000)
SELECT TEXT = STUFF(
(
    SELECT ' '+CONVERT(VARCHAR(MAX), R.ID)+' '+O.DisplayName+' : '+CONVERT(NVARCHAR(MAX), R.Value)
    FROM AA_V_PHR_CCD_ResultsXResults R 
        INNER JOIN AA_V_PHR_CCD_ResultsObservationXLANGUAGES O
        ON R.IDResultObservation = O.ID 
    WHERE IDResults = @ID_ESAME   AND O.IDLanguage = 2
    FOR XML PATH('')

), 1, 1, '') [data];

END

But if I try to execute this code I have an error message:

Incorrect syntax near to 'data'.

Remove the alias:

BEGIN
DECLARE @TEXT AS NVARCHAR(4000)
SELECT TEXT = STUFF(
(
    SELECT ' '+CONVERT(VARCHAR(MAX), R.ID)+' '+O.DisplayName+' : '+CONVERT(NVARCHAR(MAX), R.Value)
    FROM AA_V_PHR_CCD_ResultsXResults R 
        INNER JOIN AA_V_PHR_CCD_ResultsObservationXLANGUAGES O
        ON R.IDResultObservation = O.ID 
    WHERE IDResults = @ID_ESAME   AND O.IDLanguage = 2
    FOR XML PATH('')

), 1, 1, '') [data];

END

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM