SQL将行拆分为多列

时间:2019-12-01 12:02:46

标签: sql sql-server

我在下面的表TEST中有DATA列

00001900-01-01Aseopenigaccount-RF  RF-ADIT
00341900-02-01Aseopenigaccount-RASS  RASS-ADIT
00761900-03-01Adminopenigaccount-RASS  OPEN-System

我需要将DATA列的上方分为4列

Code     Date        Description          ShortDesc
0000 1900-01-01 Aseopenigaccount-RF        RF-ADIT
0034 1900-02-01 Aseopenigaccount-RASS      RF-ADIT
0076 1900-03-01 Adminopenigaccount-RASS    RF-ADIT

1 个答案:

答案 0 :(得分:3)

@ at9063,欢迎来到社区。如评论所示,您应该在以后的问题中提供解决方案的样本。在数据集后面提供任何逻辑假设也将非常有帮助。

该解决方案基于您提供的示例数据。可以通过获取前4个字符和后10个字符来提取前两列。Description列将从您的第15个字符开始,直到第一个空格。 ShortDescr从第一个空格开始。

SELECT LEFT(my_data,4) AS My_Code,
  SUBSTRING(TRIM(my_data),5,10) AS my_date, 
  SUBSTRING(TRIM(my_data),15,CHARINDEX(' ',my_data)-15) AS My_Description,
  SUBSTRING(TRIM(my_data),CHARINDEX(' ',my_data),LEN(TRIM(my_data))+1-CHARINDEX(' ',my_data)) AS my_ShortDesc 
FROM test