Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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/7/sql-server/23.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 Server中将行转换为列?_Sql_Sql Server - Fatal编程技术网

如何在SQL Server中将行转换为列?

如何在SQL Server中将行转换为列?,sql,sql-server,Sql,Sql Server,如何使用SQL Server实现这一点 有人能帮我吗?你需要的就是使用。 关于这个问题有很多例子 复制OP中的预期答案 DECLARE @tab TABLE (ID INT, CODE INT, ECODE VARCHAR(10)) INSERT INTO @tab (ID, CODE, ECODE) VALUES (1, 101, 'error1'), (1, 102, 'error2'), (1, 103, 'error3'), (1, 104, 'success'), (2, 101, '

如何使用SQL Server实现这一点

有人能帮我吗?

你需要的就是使用。 关于这个问题有很多例子

复制OP中的预期答案

DECLARE @tab TABLE (ID INT, CODE INT, ECODE VARCHAR(10))
INSERT INTO @tab
(ID, CODE, ECODE)
VALUES
(1, 101, 'error1'),
(1, 102, 'error2'),
(1, 103, 'error3'),
(1, 104, 'success'),
(2, 101, 'error1'),
(2, 102, 'error2'),
(2, 103, 'error3'),
(2, 104, 'success')


SELECT
      T.ID
    , MAX(CASE WHEN T.CODE = 101 THEN T.CODE END) 'CODE1'
    , MAX(CASE WHEN T.ECODE = 'error1' THEN T.ECODE END) 'ECODE1'
    , MAX(CASE WHEN T.CODE = 102 THEN T.CODE END) 'CODE2'
    , MAX(CASE WHEN T.ECODE = 'error2' THEN T.ECODE END) 'ECODE2'
    , MAX(CASE WHEN T.CODE = 103 THEN T.CODE END) 'CODE3'
    , MAX(CASE WHEN T.ECODE = 'error3' THEN T.ECODE END) 'ECODE3'
    , MAX(CASE WHEN T.CODE = 104 THEN T.CODE END) 'CODE4'
    , MAX(CASE WHEN T.ECODE = 'Success' THEN T.ECODE END) 'ECODE4'
FROM @tab T
GROUP BY T.ID

您应该阅读以下内容:您可能还应该在提问之前搜索此网站,因为此问题可能已经被问过(和回答过)很多次了。请查看SQL server标记中的旋转问题以获取答案和示例。我无法将行的输出转换为其他列?有人能帮我回答一下吗?
code
s总是101、102、103104?每个
ID