将数据转换为 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 中的列的简单方法?
如何将 Pandas DataFrame 的列和行子集转换为 numpy 数组?
组合不同(冗长)SQL 语句的列的最简单方法 - MSSQL