求SQL语句,高手帮忙啊。100分求解谢谢各位大哥!!!

1a一2a,b一,二3a,b,c一,二,三变1a一2a一2b二3a一3b二3c三题目是这个!!!!谢谢了.... 1 a 一
2 a,b 一,二
3 a,b,c 一,二,三



1 a 一
2 a 一
2 b 二
3 a 一
3 b 二
3 c 三

题目是这个!!!!谢谢了.
展开
 我来答
dongfanghong_1
2009-08-13 · TA获得超过363个赞
知道小有建树答主
回答量:272
采纳率:0%
帮助的人:308万
展开全部

--创建测试数据

select 1 f1,'a' f2,'一' f3 into mytb

union all

select 2,'a,b','一,二'

union all

select 3,'a,b,c','一,二,三,四'

declare @str varchar(8000),

@sqlstr varchar(8000),--动态串

@flag varchar(100),--存放f1

@c2 varchar(1000),--保存f2

@c3 varchar(1000),--保存f3

@i int,@j int

set @sqlstr=''

set @str=''

set @i=1

select @j=max(f1) from mytb

while @i<=@j

begin

select @flag=f1,@c2=f2+',',@c3=f3+',' from mytb where f1=@i

while charindex(',',@c2)>0

begin

set @sqlstr=@sqlstr+' select '+@flag+' f1,'''+left(@c2,charindex(',',@c2)-1)+''' f2,'''+left(@c3,charindex(',',@c2)-1)+''' f3 union all'

set @c2=right(@c2,len(@c2)-charindex(',',@c2))

set @c3=right(@c3,len(@c3)-charindex(',',@c3))

end

set @i=@i+1

end

set @sqlstr=left(@sqlstr,len(@sqlstr)-10)

exec(@sqlstr)

studyzy
2009-08-13
知道答主
回答量:6
采纳率:0%
帮助的人:3.5万
展开全部
要写一个自定义表值函数,比如命名叫dbo.StringSplit,然后就是:
select *
from t1
cross apply dbo.StringSplit(t1.c2,t1.c3)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loveyurui
2009-08-13 · TA获得超过6557个赞
知道大有可为答主
回答量:2892
采纳率:33%
帮助的人:995万
展开全部
有意思 留个记号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-08-13
展开全部
有没有达人出现?.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wmxnlcj
2009-08-13 · TA获得超过191个赞
知道答主
回答量:265
采纳率:0%
帮助的人:145万
展开全部
假如表名为w,表中字段依次为(x,y,z)
select x xx,substr(y,1,1) yy,substr(z,1,1) zz from w
union all
select x xx, substr(y,3,1) yy,substr(z,3,1) zz from w
union all
select x xx, substr(y,5,1) yy,substr(z,5,1) zz from w
order by xx,yy,zz
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
奔驰M888
2009-08-27 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1846
采纳率:0%
帮助的人:2707万
展开全部
好像简单的sql办不到,用存储过程吧,因为不知道你的数据库,没办法写到这里(因为不同的数据库语法不一样),看到可以hi我,应该可以帮到你。

---
以上,希希望对你有所帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式