如何在SQL中将列拆分为2列

时间:2013-06-28 14:12:25

标签: sql sql-server date casting split

我有一个SQL查询,它从表中提取必须按此顺序排列的列

项目ID, PARMS, 移动列表, 的MsgId。我在查询中还有一些必须保留的要求,例如UserCode = automation,并且Date设置为当天之前的一天。

一行的Parms输出示例是

    CURRENT OUTPUT
    Parms:
    V51370,Move List,M-000001

-

    REQUIRED OUTPUT
    Media: v51370
    Comments: Was Removed From
    Move List: M-000001

我想要做的是将此Parms列拆分为两个单独的列,这些列位于Item Id和Move list列之间。第一列应该被称为Media,它从Parms列中提取前六个字符:v51370。第二列是注释,如果MsgId为1,则注释应为:已从中移除。

任何人都可以对我可以测试的查询提出任何建议吗?我不知道Parms列拆分在哪里。非常感谢。

请注意:我使用的是SQL Server Management Studio 2008,表名是JnlList。

     1 SAMPLE ROW (SELECT * FROM JNLLIST):
     ItemId: 2
     Date: 20122102.124652563
     Object: S-000001
     MsgID: 1
     Parms: V86143,Scratch List,S-000001
     Delimiter: -
     UserCode: Automation
     ActionId: 5
     List Type: S

1 个答案:

答案 0 :(得分:0)

将parms中的前6个字符分开使用

SELECT SUBSTRING(Parms,1,6) AS Media 
FROM YOUR TABLE;

然后,您可以使用具有相同语法的子查询从Parms列中选择其余字符并将它们放入单独的列中