想建一个视图,但很难,忘高手指教!

renniliao 2003-05-31 05:46:07
我表的结构是这样的:
id号 class
001 2002应英1
002 2002应英1
003 2000英语1,2000英语2,2001英语1,2001英语2,2001英语3
004 2002应英1,2002应英2
005 2002应英1,2002应英2
... ......

想通过视图得到以下结果:
id号 class
001 2002应英1
002 2002应英1
003 2000英语1
003 2000英语2
003 2001英语1
003 2001英语2
003 2001英语3
004 2002应英1
004 2002应英2
005 2002应英1
005 2002应英2
... ......
...全文
94 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
renniliao 2003-05-31
  • 打赏
  • 举报
回复
好的 !再次感谢!
pengdali 2003-05-31
  • 打赏
  • 举报
回复
select top 8000 identity(int,1,1) id into #dali from sysobjects a,sysobjects b
declare @dali table (a int,b varchar(100))
insert @dali values (1,'aaaaaaaaa,bbbbb')
insert @dali values (2,'cc,rr,kk')
select a,substring(','+b,id+1,charindex(',',','+b+',',id+1)-id-1)
from @dali aa,#dali bb
where substring(','+b,id,8000) like ',_%'
order by a,id
drop table #dali


完全拷贝到查询分析器里,执行,再慢慢研究吧
renniliao 2003-05-31
  • 打赏
  • 举报
回复
不过,您要是有时间的话,最好能帮我解释一下每一句的含义。我只能看懂select语句的部分。
但其他那些部分就不明白了。要是有什么资料上有讲这个的话,麻烦告诉我,我买一些学学。谢谢!
renniliao 2003-05-31
  • 打赏
  • 举报
回复
非常感谢您的帮助!
pengdali 2003-05-31
  • 打赏
  • 举报
回复
--先执行这个建立一个序数表
select top 8000 identity(int,1,1) id into 序数表 from sysobjects a,sysobjects b

--然后这样就OK了
select id号,substring(','+class,bb.id+1,charindex(',',','+class+',',bb.id+1)-bb.id-1) 结果
from 你的这个表 aa,序数表 bb
where substring(','+class,bb.id,8000) like ',_%'
order by id号,bb.id

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧