2013-06-28 154 views
-1

我有一個從一定順序如何拆分一列到兩列在SQL

項目標識, PARMS, 移動列表, 的MsgId表提取列的SQL查詢。我在查詢中還有一些必須保留的要求,例如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欄分成兩個單獨的列是介於兩者之間的項目標識和移動列表列。第一列應稱爲媒體,它從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 
+0

你能告訴我們你到目前爲止所嘗試過的嗎?並可能有問題表中的一些示例數據? –

+0

@ DevN00B我已經用表格中的樣本數據更新了問題。我希望這有幫助。 –

+0

Parms列包含3個commar分開的值,你不想讓它分裂成3? – JsonStatham

回答

0

到單獨的前6個字符從PARMS使用

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

然後你可以使用具有相同的語法子查詢選擇從PARMS列的字符的其餘部分,並把它們放到一個單獨列