将数据转换为 ssms 中的列的简单方法

Posted

技术标签:

【中文标题】将数据转换为 ssms 中的列的简单方法【英文标题】:simple way to convert data into columns in 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,在这两个新列中,我将拥有来自文本列的数据,这取决于它是否是标题文本在将填充行列的位置填充标题列或行文本

【问题讨论】:

您没有告诉我们您的问题是什么,也没有提出问题让我们回答。 是的,我有 - 如果你在底部阅读,你会看到我想用我的脚本做什么 【参考方案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')

【讨论】:

以上是关于将数据转换为 ssms 中的列的简单方法的主要内容,如果未能解决你的问题,请参考以下文章

在不同的绘图行上绘制 Pandas Dataframe 中的列的简单方法?

如何将mysql行转换为列的简单方法

如何将 Pandas DataFrame 的列和行子集转换为 numpy 数组?

组合不同(冗长)SQL 语句的列的最简单方法 - MSSQL

将值转换为 Spark 数据集中的列(将列的键和值对转换为常规列)[重复]

将列的数据类型从字符串转换为双精度