2011-12-28 118 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个分量