2011-12-28 119 views
1

table1的如何列拆分成多個值

Value (Always 3 Digit) 

100x200x300 
200x400x500 
... 
... 

我想要從值列

預期產出3列

val1 val2 val3 

100 200 300 
200 400 500 
... 
... 

需要查詢幫助

+0

是值總是3數字還是可以變化?你想做一次還是特設? – 2011-12-28 11:05:45

+0

總是隻有三位數字.... – Gopal 2011-12-28 11:10:22

回答

2
SELECT SUBSTRING([VALUE],1,3) AS val1, 
     SUBSTRING([VALUE],5,3) AS val2, 
     SUBSTRING([VALUE],9,3) AS val3 
    FROM TABLE1 
3

它利用PARSENAME而不是SUBSTRING。

SELECT 
    PARSENAME(Value2, 3) AS val1, 
    PARSENAME(Value2, 2) AS val2, 
    PARSENAME(Value2, 1) AS val3 
FROM 
    (
    SELECT 
     REPLACE(Value, 'x', '.') AS Value2 
    FROM 
     MyTable 
    ) T; 

此代碼

  • 允許不同的成分值長度
  • 假定x是總是隔板
  • 假定總是3個分量