Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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_Sql Server_Sql Server 2008_Pivot - Fatal编程技术网

Sql 显示行中具有空值的列名

Sql 显示行中具有空值的列名,sql,sql-server,sql-server-2008,pivot,Sql,Sql Server,Sql Server 2008,Pivot,我只想显示那些问题(q1、q2、q3、q4…等)值为空的学生id的列名,下面是我想要问题id的表格的打印屏幕。低于预期的o/p 您可以使用FOR XML来实现以下结果: 编辑:添加内容以去除前导逗号,并添加其他“”: 我一直在使用aboce case语句,但在161983次之后,我无法看到输出 请公布您的预期结果。是否列出所有问题中为空的学生?或者,如果他们在至少一个问题上为空,您想列出他们吗?很好的解决方案+1.请看我的编辑。如果您愿意,请随意还原。我发现这两个查询都有问题,它只显示了前

我只想显示那些问题(q1、q2、q3、q4…等)值为空的学生id的列名,下面是我想要问题id的表格的打印屏幕。低于预期的o/p


您可以使用
FOR XML
来实现以下结果:


编辑:添加
内容
以去除前导逗号,并添加
其他“”

我一直在使用aboce case语句,但在161983次之后,我无法看到输出


请公布您的预期结果。是否列出所有问题中为空的学生?或者,如果他们在至少一个问题上为空,您想列出他们吗?很好的解决方案+1.请看我的编辑。如果您愿意,请随意还原。我发现这两个查询都有问题,它只显示了前6个问题编号。因此,当我打开表结构时,我发现所有其他列上都有排序规则Latin1_General_CI_AI。由于排序规则的原因,此数据是否未显示?您必须手动为您的表中的问题列数添加条目桌子感谢Wewesthemenance更正语法。
;WITH Cte AS(
    SELECT id, name, q = 'q1' FROM Test WHERE q1 IS NULL UNION ALL
    SELECT id, name, q = 'q2' FROM Test WHERE q2 IS NULL UNION ALL
    SELECT id, name, q = 'q3' FROM Test WHERE q3 IS NULL UNION ALL
    SELECT id, name, q = 'q4' FROM Test WHERE q4 IS NULL UNION ALL
    SELECT id, name, q = 'q5' FROM Test WHERE q5 IS NULL UNION ALL
    SELECT id, name, q = 'q6' FROM Test WHERE q6 IS NULL
)
SELECT
    id,
    name,
    incompletes = STUFF((
        SELECT ',' + c2.q
        FROM Cte c2
        WHERE
            c1.id = c2.id
            AND c1.name = c2.name
        GROUP BY c2.id, c2.name, c2.q
        FOR XML PATH(''), TYPE).value('.', 'varchar(max)')
        , 1, 1, '')
FROM Cte c1
GROUP BY c1.id, c1.name
ORDER BY c1.id, c1.name
SELECT ID, NAME, 
 RTRIM ((CASE WHEN Q1 IS NULL THEN 'Q1,' END)||
        (CASE WHEN Q2 IS NULL THEN 'Q2,' END)||
        (CASE WHEN Q3 IS NULL THEN 'Q3,' END)||
        (CASE WHEN Q4 IS NULL THEN 'Q4,' END)||
        (CASE WHEN Q5 IS NULL THEN 'Q5,' END)||
        (CASE WHEN Q6 IS NULL THEN 'Q6,' END),',') AS NULL_QUESTIONS
FROM TABLE  
SELECT ID, NAME,  
    STUFF (
        CASE WHEN Q1 IS NULL THEN ',q1' ELSE '' END +
        CASE WHEN Q2 IS NULL THEN ',q2' ELSE '' END +
        CASE WHEN Q3 IS NULL THEN ',q3' ELSE '' END +
        CASE WHEN Q4 IS NULL THEN ',q4' ELSE '' END +
        CASE WHEN Q5 IS NULL THEN ',q5' ELSE '' END +
        CASE WHEN Q6 IS NULL THEN ',q6' ELSE '' END
    , 1,1,'') AS NULL_QUESTIONS
FROM Test  
SELECT Panelist_ID, EmailAddress collate Latin1_General_CI_AI,  
STUFF (
  CASE WHEN  convert (nvarchar (14), PQ_160175) IS NULL THEN ',PQ_160175'    ELSE '' END +
 CASE WHEN  convert (nvarchar (14), PQ_161979) IS NULL THEN ',PQ_161979'  ELSE '' END +
  CASE WHEN  convert (nvarchar (14), PQ_161980) IS NULL THEN ',PQ_161980'  ELSE '' END +
  CASE WHEN  convert (nvarchar (14), PQ_161981) IS NULL THEN ',PQ_161981'  ELSE '' END +
  CASE WHEN  convert (nvarchar (14), PQ_161982) IS NULL THEN ',PQ_161982'  ELSE '' END +
 CASE WHEN  convert (nvarchar (14), PQ_161983) IS NULL THEN ',PQ_161983'  ELSE '' END +
   CASE WHEN    convert (nvarchar (14), PQ_161986) IS NULL THEN ',PQ_161986'     ELSE '' END +
   CASE WHEN   PQ_172469 IS NULL THEN ',PQ_172469'  ELSE '' END +
    CASE WHEN   PQ_180972 IS NULL THEN ',PQ_180972'  ELSE '' END +
      CASE WHEN PQ_180973 IS NULL THEN ',PQ_180973'  ELSE '' END + 
      CASE WHEN PQ_189924 IS NULL THEN ',PQ_189924'  ELSE '' END +
     CASE WHEN PQ_195859 IS NULL THEN ',PQ_195859'  ELSE '' END +
    CASE WHEN PQ_195860 IS NULL THEN ',PQ_195860'  ELSE '' END +
    CASE WHEN PQ_196605 IS NULL THEN ',PQ_196605'  ELSE '' END +
    CASE WHEN PQ_196606 IS NULL THEN ',PQ_196606'  ELSE '' )