Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL按一行获取查询结果的值_Sql_Tsql - Fatal编程技术网

SQL按一行获取查询结果的值

SQL按一行获取查询结果的值,sql,tsql,Sql,Tsql,我有一个疑问: SELECT R.ID ,O.DisplayName ,[Value] FROM AA_V_PHR_CCD_ResultsXResults R INNER JOIN AA_V_PHR_CCD_ResultsObservationXLANGUAGES O ON R.IDResultObservation = O.ID WHERE IDResults = 149 AND O.IDLanguage = 2 ID Disp

我有一个疑问:

SELECT 
      R.ID
     ,O.DisplayName
     ,[Value]
FROM AA_V_PHR_CCD_ResultsXResults R 
INNER JOIN AA_V_PHR_CCD_ResultsObservationXLANGUAGES O
           ON R.IDResultObservation = O.ID  
WHERE IDResults = 149 AND O.IDLanguage = 2
ID  DisplayName Value
1604    HBsAg   0.140
1605    HBsAb   0.000
1606    HCV 0.020
这是这个查询的结果:

SELECT 
      R.ID
     ,O.DisplayName
     ,[Value]
FROM AA_V_PHR_CCD_ResultsXResults R 
INNER JOIN AA_V_PHR_CCD_ResultsObservationXLANGUAGES O
           ON R.IDResultObservation = O.ID  
WHERE IDResults = 149 AND O.IDLanguage = 2
ID  DisplayName Value
1604    HBsAg   0.140
1605    HBsAb   0.000
1606    HCV 0.020
如果可能的话,我希望得到这个结果:

1604 HBsAg: 0.140 1605 HBsAb: 0.00 etc
可以这样做

您可以尝试以下方法:

    SELECT stuff(
                 (
                   SELECT cast(',' as varchar(max)) + R.ID || ' ' || O.DisplayName  || ' ' || [Value]
                     FROM AA_V_PHR_CCD_ResultsXResults R 
               INNER JOIN AA_V_PHR_CCD_ResultsObservationXLANGUAGES O
                       ON R.IDResultObservation = O.ID  
                    WHERE IDResults = 149 
                      AND O.IDLanguage = 2    for xml path('')
                 ), 
               1, 1, '') AS my_results
      FROM AA_V_PHR_CCD_ResultsXResults R 
INNER JOIN AA_V_PHR_CCD_ResultsObservationXLANGUAGES O
        ON R.IDResultObservation = O.ID  
     WHERE IDResults = 149 
       AND O.IDLanguage = 2

您应该按如下方式使用STUFF函数:

SELECT STUFF(
            (
                SELECT ' '+CONVERT(VARCHAR(MAX), ID)+' '+DisplayName+' : '+CONVERT(NVARCHAR(MAX), Value)
                FROM <table_name> FOR XML PATH('')
            ), 1, 1, '') [data]; 

如果有帮助的话,这可以在不使用XML的情况下解决问题

DECLARE @Temp NVARCHAR(MAX) = ''

SELECT @TEMP = CONCAT(@Temp, CAST(ID AS VARCHAR(4)), ' ', DisplayName, ' :', CAST(Value AS VARCHAR(5), ' ')
FROM Table

SELECT @Temp

如果有许多行/列,您将如何可视化这些结果?我想在TSQL中将这些结果可视化为一行和一列。GROUP_CONCAT函数不可识别。我认为这不会仅在一行中显示结果。是的,我假设SQLServer更聪明