fid fname fcode
-----------------------------
01 y 1,2
02 y 1,2
03 z 2,3
04 z 2,3转为
fid fname fcode
-----------------------------
01 y 1
01 y 2
02 y 1
02 y 2
03 z 2
03 z 3
04 z 2
04 z 3用sql语句转两表的格式,实际上就是以逗号分开fcode字段,形成一新行。fcode可能是多个以逗号分隔的数字如:1,2,3,4,5,n....
我实际应用中字段也不仅是这三个,现就以三个为例。
昨天有扬帆朋友帮我弄了,但是以两字段为例,没研究透,所以请再帮我弄个多字段的。
整个系统就差这一处就交差了,万望大家出手帮我
-----------------------------
01 y 1,2
02 y 1,2
03 z 2,3
04 z 2,3转为
fid fname fcode
-----------------------------
01 y 1
01 y 2
02 y 1
02 y 2
03 z 2
03 z 3
04 z 2
04 z 3用sql语句转两表的格式,实际上就是以逗号分开fcode字段,形成一新行。fcode可能是多个以逗号分隔的数字如:1,2,3,4,5,n....
我实际应用中字段也不仅是这三个,现就以三个为例。
昨天有扬帆朋友帮我弄了,但是以两字段为例,没研究透,所以请再帮我弄个多字段的。
整个系统就差这一处就交差了,万望大家出手帮我
create table #TT (
id varchar(20),
name varchar(10),
field1 varchar(50)
)insert #TT select
-------------------
1,'a', '1'
union all select
2,'b', '2'
union all select
3,'c', '2,3'
union all select
4,'d', '1,2'go--用 动态语句
declare @sql varchar(8000)
set @sql='select '
select @sql=@sql+''''+id+''' as id,'''+ --在这加
''+name+''' as name,'''+replace(field1,',',''' as Field1 union all select '
+''''+id+''' as id,''' --在这加
+''+name+''' as name,''')+''' as Field1 union all select'
from #TTset @sql=left(@sql,len(@sql)-17)
print @sqlexec( @sql)
你自己print出来,你就会明白的了