小编Syn*_*Hub的帖子

如何生成 NULL 字段的输出(从多个列+表组合)?

我管理一个应用程序,该应用程序有多个用户通过 Web 前端将数据输入到 MSSQL 数据库中。每个单独的“记录”在多个表中可以有大约 100 个数据库列(有时在同一个表中有多个行)。编写 SQL 查询将在每个“记录”中输出 1 行,其中包含我们用于报告目的所需的所有列,这是相对简单的,例如:

Assessor  Date    Length  Colour  Weight
Steve     2/4/17  23.4    NULL    45
John      4/4/17  NULL    Blue    NULL
Brenda    4/4/17  NULL    NULL    NULL
Run Code Online (Sandbox Code Playgroud)

我想生成一个简单的输出,列出未记录数据的所有内容,即保持 NULL 的字段。例如:

Assessor  Date    Field
Steve     2/4/17  Colour
John      4/4/17  Length
John      4/4/17  Weight
Brenda    4/4/17  Length
Brenda    4/4/17  Length
Brenda    4/4/17  Colour
Brenda    4/4/17  Weight
Run Code Online (Sandbox Code Playgroud)

目前我已经尝试了以下方面的内容:

 select 
  assessor
  ,date
  ,Field    =  'Length'
 from
 dbo.table1
 where [Length] is NULL
UNION ALL
 select 
  assessor
  ,date
  ,Field    =  'Colour'
 from …
Run Code Online (Sandbox Code Playgroud)

sql-server view unpivot

5
推荐指数
1
解决办法
210
查看次数

标签 统计

sql-server ×1

unpivot ×1

view ×1