【问题标题】:Result Value on the same row结果值在同一行
【发布时间】:2017-08-27 10:38:20
【问题描述】:

我希望所有具有相同 ID 的值在下面的查询中位于同一行。我不知道该怎么做。请帮忙

DECLARE @Tab TABLE 
             (ID INT,
              Day1 Varchar(10), Day2 Varchar(10), Day3 Varchar(10),
              Day4 Varchar(10), Day5 Varchar(10), Day6 Varchar(10),
              Day7 Varchar(10), Day8 Varchar(10),
              Day9 Varchar(10), Day10 Varchar(10)
             )

INSERT INTO @Tab 
VALUES
    (1,'R','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL'),
    (1,'NULL','R','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL'),
    (1,'NULL','NULL','C','NULL','NULL','NULL','NULL','NULL','NULL','NULL'),
    (1,'NULL','NULL','NULL','D','NULL','NULL','NULL','NULL','NULL','NULL'),
    (1,'NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL'),
    (1,'NULL','NULL','NULL','NULL','NULL','V','NULL','NULL','NULL','NULL'),
    (1,'NULL','NULL','NULL','NULL','NULL','NULL','Y','NULL','NULL','NULL'),
    (1,'NULL','NULL','NULL','NULL','NULL','NULL','NULL','R','NULL','NULL'),
    (2,'R','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL'),
    (2,'NULL','C','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL'),
    (2,'NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL'),
    (2,'NULL','NULL','NULL','K','NULL','NULL','NULL','NULL','NULL','NULL'),
    (2,'NULL','NULL','NULL','NULL','V','NULL','NULL','NULL','NULL','NULL'),
    (2,'NULL','NULL','NULL','NULL','NULL','R','NULL','NULL','NULL','NULL'),
    (2,'NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL'),
    (2,'NULL','NULL','NULL','NULL','NULL','NULL','NULL','R','NULL','NULL'),
    (2,'NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','K','NULL'),
    (2,'NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','C'),
    (3,'R','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL'),
    (3,'NULL','R','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL'),
    (3,'NULL','NULL','R','NULL','NULL','NULL','NULL','NULL','NULL','NULL'),
    (3,'NULL','NULL','NULL','C','NULL','NULL','NULL','NULL','NULL','NULL'),
    (3,'NULL','NULL','NULL','NULL','W','NULL','NULL','NULL','NULL','NULL'),
    (3,'NULL','NULL','NULL','NULL','NULL','V','NULL','NULL','NULL','NULL'),
    (3,'NULL','NULL','NULL','NULL','NULL','NULL','A','NULL','NULL','NULL'),
    (3,'NULL','NULL','NULL','NULL','NULL','NULL','NULL','D','NULL','NULL'),
    (3,'NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','W','NULL'),
    (3,'NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','NULL','Y')

SELECT * 
FROM @Tab

我想要的输出

谢谢

【问题讨论】:

  • 您是否真的想要将'NULL' 的字符串值插入几乎每一列 - 或者您是否打算插入NULL ( 不存在值 - 没有任何单引号!)对于大多数列?
  • @marc_s 这只是一个示例数据。这是查询的结果。我模仿我的结果

标签: sql sql-server sql-server-2008 sql-server-2012


【解决方案1】:

对每一列使用聚合函数:

SELECT t.id,
       MAX(t.Day1) as Day1,
       MAX(t.day2) as Day2,
       ..
FROM YourTable t
GROUP BY t.id

虽然你的输出是错误的,但我认为这是一个错字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 2021-01-30
    相关资源
    最近更新 更多