提取分隔值并使用T-SQL创建列

时间:2013-08-01 09:04:48

标签: sql

我的下表名为DQS_Raw,有两列。

DQS_Raw

id    Result
-----------------    
1   |01|00|00|01
2   |00|01|01|00
3   |00|00|00|01

我需要使用存储过程来获得下表结果。

下表有6列。

DQS_Raw

id  Result        VF02a VF02b VF02c VF05b
------------------------------------------    
1   |01|00|00|01  01    00    00    01
2   |00|01|01|00  00    01    01    00
3   |00|00|00|01  00    00    00    01

如此处所述,提取管道分隔字符之间的值。第一个提取的值分配给列VF02a,第二个分配给VF02b,依此类推。

如果订单从输入改变,我还需要它足够动态。

请不要使用基于集合的方法。

城野

1 个答案:

答案 0 :(得分:1)

我认为这不可能成为一种动态的方法。

但你可以做这样的事情来分割价值

我假设你使用ssms 2010服务器

select *,  
SUBSTRING(Result,2,2) as VF021,  
SUBSTRING(Result,5,2) as VF02b,  
SUBSTRING(Result,8,2) as VF02c,  
SUBSTRING(Result,11,2) as VF05b  
from DQS_RAW