从table_a上的不同行中选择多个值到table_b上的一个新行

时间:2016-01-27 18:56:14

标签: sql-server-2008

我有一张如下表:

'table_a'
Type | Value
-----+------------
000  | 100020003
001  | 004
002  | 5000600070008

我需要得到如下结果集:

'table_b' 
 ---+---+---+---
 1 | 2 | 3 | 4     ETC...

我已经使用子字符串来拉取1,2和3,其中type = 000.现在我需要对类型001和002执行相同操作但是如何将它们连接在一起以在' table_b&#中创建一行39;

到目前为止,我已使用下面的内容填充1,2和3,但我不知道如何从剩余的行中选择数据。

SELECT SUBSTRING(Value,1,1) AS val_1
       SUBSTRING(Value,5,1) AS val_2
       SUBSTRING(Value,9,1) AS val_3
  FROM table_a
 WHERE type = 000

下一个查询将是这样的:      SELECT SUBSTRING(Value,3,1)AS val_4        FROM table_a       WHERE type = 001

因为你可以看到我不能使用联合,因为我没有在每个select语句中选择相同数量的项目。

我所提取的数据不是这种统一的,但希望这能传达出我需要做的正确的事情。我非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

SELECT SUBSTRING(Value,1,1) || "val_1",
       SUBSTRING(Value,5,1) || "val_2",
       SUBSTRING(Value,9,1) || "val_3",
  FROM table_a
 WHERE type = 000