【问题标题】:Convert Rows to Columns in SQL Server Query [closed]在 SQL Server 查询中将行转换为列 [关闭]
【发布时间】:2014-02-10 22:18:51
【问题描述】:

我在一个 SQL 查询中得到 5 行,数据截图如下:

我需要编写将这些行转换为 5 列的 SQL 查询。结果应该是这样的:

Col1 ---> Value of First Row

Col2 ---> Value of Second Row

Col3 ---> Value of Third Row

Col4 ---> Value of Fourth Row

Col5 ---> Value of Fifth Row

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 查找 PIVOT 并发布您遇到的问题
  • 这个问题似乎是题外话,因为 OP 正在寻找有关如何解决问题的资源。
  • 我没有得到任何答案框来回答这个问题,而不是枢轴我们也可以使用最大值和案例条件
  • ;与 CTE AS (选择 LEFT(trm_desc,CHARINDEX(':',trm_desc)-1)As Col, RIGHT(trm_desc,LEN(trm_desc)- CHARINDEX(':',trm_desc)- 1) 作为 Val, ROW_NUMBER()OVER (ORDER BY trm_desc) AS RN from @Table ) 选择 MAX(CASE WHEN = 1 THEN Val ELSE '' END )AS 'Select', MAX(CASE WHEN = 2 THEN Val ELSE '' END )AS 'Others' , MAX(CASE WHEN = 3 THEN Val ELSE '' END )AS 'Payment' , MAX(CASE WHEN = 4 THEN Val ELSE '' END )AS 'Supply' , MAX(CASE当 RN = 5 THEN Val ELSE '' END )AS 'Taxes' from CTE

标签: sql sql-server sql-server-2008 pivot


【解决方案1】:

测试数据

DECLARE @Table TABLE(trm_desc VARCHAR(300))
INSERT INTO @Table VALUES
('Supply: All goods supplied bla bla...'),
('Payment: to be made 10 April 2013'),
('Delivery: Today 07 March 2013'),
('Taxes: The price is bla bla...'),
('Others: other bla bla')

查询

SELECT * FROM 
(
SELECT LEFT(trm_desc, CHARINDEX(':', trm_desc)-1) AS Cols
      ,RIGHT(trm_desc, LEN(trm_desc)-CHARINDEX(':', trm_desc)-1) Value
FROM @Table) Q
PIVOT (MAX(Value)
       FOR Cols
       IN ([Supply],[Payment],[Delivery],[Taxes],[Others])
       )p

结果集

╔═══════════════════════════════╦══════════════════════════╦═════════════════════╦═════════════════════════╦═══════════════╗
║            Supply             ║         Payment          ║      Delivery       ║          Taxes          ║    Others     ║
╠═══════════════════════════════╬══════════════════════════╬═════════════════════╬═════════════════════════╬═══════════════╣
║ All goods supplied bla bla... ║ to be made 10 April 2013 ║ Today 07 March 2013 ║ The price is bla bla... ║ other bla bla ║
╚═══════════════════════════════╩══════════════════════════╩═════════════════════╩═════════════════════════╩═══════════════╝

【讨论】:

    猜你喜欢
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 2015-08-27
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多