【问题标题】:simple way to convert data into columns in ssms将数据转换为 ssms 中的列的简单方法
【发布时间】:2014-06-18 22:30:11
【问题描述】:

这是我的脚本:

SELECT     
  LEFT(NARRKEY, 15) AS Business, 
  SUBSTRING(NARRKEY, 14, 10) AS [Sales Order], 
  SUBSTRING(NARRKEY, 24, 3) AS LINE, 
  NARRLINE$1 + ' ' + NARRLINE$2 + ' ' + NARRLINE$3 + ' ' + NARRLINE$4 + ' ' + NARRLINE$5 + ' ' + NARRLINE$6 + ' ' + NARRLINE$7 AS Text, 
  CASE 
    WHEN NARRPREFIX = 'J' THEN 'HEADER TEXT' 
    WHEN NARRPREFIX = 'I' THEN 'LINE TEXT' 
    ELSE NULL 
  END AS Expr2
 FROM   dbo.MAA040
 WHERE  (NARRLANG = 'E') 
 AND    (NARRSEQ = '000') 
 AND (NARRPREFIX = 'J' OR NARRPREFIX = 'I')

我希望能够将当前列 NARRPREFIX 更改为两个新列,即 HEADER TEXT 和 LINE TEXT,在这两个新列中,我将拥有来自文本列的数据,这取决于它是否是标题文本在将填充行列的位置填充标题列或行文本

【问题讨论】:

  • 您没有告诉我们您的问题是什么,也没有提出问题让我们回答。
  • 是的,我有 - 如果你在底部阅读,你会看到我想用我的脚本做什么

标签: sql pivot ssms transpose


【解决方案1】:
SELECT     
  LEFT(NARRKEY, 15) AS Business, 
  SUBSTRING(NARRKEY, 14, 10) AS [Sales Order], 
  SUBSTRING(NARRKEY, 24, 3) AS LINE, 
  NARRLINE$1 + ' ' + NARRLINE$2 + ' ' + NARRLINE$3 + ' ' + NARRLINE$4 + ' ' + NARRLINE$5 + ' ' + NARRLINE$6 + ' ' + NARRLINE$7 AS Text, 
  CASE 
    WHEN NARRPREFIX = 'J' THEN 'HEADER TEXT' 
    WHEN NARRPREFIX = 'I' THEN 'LINE TEXT' 
    ELSE NULL 
  END AS Expr2,
CASE WHEN NARRPREFIX = 'J' THEN NARRLINE$1 + ' ' + NARRLINE$2 + ' ' + NARRLINE$3 + ' ' + NARRLINE$4 + ' ' + NARRLINE$5 + ' ' + NARRLINE$6 + ' ' + NARRLINE$7 END AS HeaderText,
CASE WHEN NARRPREFIX = 'I' THEN NARRLINE$1 + ' ' + NARRLINE$2 + ' ' + NARRLINE$3 + ' ' + NARRLINE$4 + ' ' + NARRLINE$5 + ' ' + NARRLINE$6 + ' ' + NARRLINE$7 END AS LineText

 FROM   dbo.MAA040
 WHERE  (NARRLANG = 'E') 
 AND    (NARRSEQ = '000') 
 AND (NARRPREFIX = 'J' OR NARRPREFIX = 'I')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 2020-05-17
    相关资源
    最近更新 更多