-1

SQL Server 2005 の使用

id value1 value2

001 200 300
002 200x300 400x200
003 300x200 500x600
004 100 200
.....

値列を2列に分割したい

If value1 row 200x300 then it should display value1 - 200 and value2 - 300
if value2 row 400x200 then it should display value1 - 400 and value2 - 200

期待される出力

id value1 value2

001 200 300
002 200 300
002 400 200
003 300 200
003 500 600
004 100 200
....

これを行う方法。

SQL クエリのヘルプが必要

4

3 に答える 3

0

チェックしてください:

DECLARE @table as TABLE(id nvarchar(10), Value1 Nvarchar(50), Value2 nvarchar(50))
insert into @table values
('001', '200', '300'),
('002', '200x300', '400x200'),
('003', '300x200', '500x600'),
('004', '100', '200')

select id, Value1, Value2 From @table
select id, Value1, Value2 From @table where CHARINDEX('x', Value2)=0
union all
select id, SUBSTRING(Value1, 1, CHARINDEX('x', Value1)-1) Value1, SUBSTRING(Value1, CHARINDEX('x', Value1)+1, LEN(Value1)) Value2  From @table where CHARINDEX('x', Value2)>0
union all
select id, SUBSTRING(Value2, 1, CHARINDEX('x', Value2)-1) Value1, SUBSTRING(Value2, CHARINDEX('x', Value2)+1, LEN(Value1)) Value2  From @table where CHARINDEX('x', Value2)>0
order by id
于 2013-04-25T07:52:49.450 に答える