SQL Server如何将列值转换为行

克拉普修斯

我将尝试解释我的问题。

我的表结构:

name Code_1 Code_1_value Code_2 Code_2_value Code_3 Code_3_value
N1    ABC1        10      ABC2       15       ABC3        6
N2    ABC1        3       NULL      NULL      BAA1        10
N3    ABC4        5       ABC2       11       ADC3        6

我想将此值转换为新格式:

name    code    value
N1      ABC1      10
N1      ABC2      15
N1      ABC3      6
N2      ABC1      3

我不知道应该在逻辑上(枢轴?)

德瓦特

询问 -

DECLARE @t TABLE (
    name VARCHAR(50) PRIMARY KEY,
    Code_1 VARCHAR(50),
    Code_1_value INT,
    Code_2 VARCHAR(50),
    Code_2_value INT,
    Code_3 VARCHAR(50),
    Code_3_value INT
)
INSERT INTO @t
VALUES
    ('N1', 'ABC1', 10, 'ABC2', 15  , 'ABC3', 6),
    ('N2', 'ABC1', 3 , NULL,   NULL, 'BAA1', 10),
    ('N3', 'ABC4', 5 , 'ABC2', 11  , 'ADC3', 6)

SELECT name, code, value
FROM @t
CROSS APPLY (
    VALUES (Code_1, Code_1_value), (Code_2, Code_2_value),  (Code_3, Code_3_value)
) t2 (code, value)
WHERE code IS NOT NULL

输出 -

name     code     value
-------- -------- -----------
N1       ABC1     10
N1       ABC2     15
N1       ABC3     6
N2       ABC1     3
N2       BAA1     10
N3       ABC4     5
N3       ABC2     11
N3       ADC3     6

发表关于UNPIVOT-

http://blog.devart.com/is-unpivot-the-best-way-for-converting-columns-into-rows.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将 SQL Server 行转换为多列?

来自分类Dev

如何将所有文本行值转换为SQL Server中的列

来自分类Dev

将行转换为列SQL Server

来自分类Dev

将列转换为行SQL Server

来自分类Dev

将行转换为列SQL Server

来自分类Dev

SQL Server将行转换为列

来自分类Dev

如何将 SQL SERVER 查询转换为 Oracle SQL?

来自分类Dev

如何将多个结果行转换为具有相应值的单行SQL

来自分类Dev

sql:如何将行中的值转换为具有前缀和后缀的变量

来自分类Dev

如何将水平行转换为垂直SQL Server

来自分类Dev

如何将XML数据转换为SQL Server表

来自分类Dev

SQL Server - 如何将 varchar 转换为日期

来自分类Dev

如何将查询从 SQL Server 转换为 Oracle?

来自分类Dev

SQL:如何将行转换为列(需要另一种方法)

来自分类Dev

Sql Server 将列转换为行用零或现有值填充 NULL

来自分类Dev

SQL Server将varchar列值'1218300.00'转换为int

来自分类Dev

SQL将行值转换为列标题

来自分类Dev

如何将日期时间选择器中获取的日期值转换为Visual C#中SQL Server表中的“日期”列?

来自分类Dev

将行转换为SQL Server中的常量列?

来自分类Dev

Microsoft SQL Server:将3行转换为3列

来自分类Dev

将列转换为SQL Server 2012中的行

来自分类Dev

SQL Server-将列转换为行

来自分类Dev

将列数据转换为行,SQL Server 2008

来自分类Dev

将(文本)行转换为SQL Server 2014中的列

来自分类Dev

使用SQL Server将行转换为列

来自分类Dev

SQL Server 2008:将行转换为列

来自分类Dev

将数据列转换为SQL Server中的数据行

来自分类Dev

SQL SERVER 2008 QUERY将行转换为多列

来自分类Dev

根据 SQL Server 中的条件将列转换为行

Related 相关文章

热门标签

归档