求教,这样的查询怎么实现,,,

guhguh 2003-09-26 10:15:20
求教,这样的查询怎么实现,,,


专业 考试课程1 考试课程2

计算机 C 政治
法学 外语 政治


通过一个查询,建一个这样的视图


专业 考试课程
计算机 C
计算机 政治
法学 外语
法学 政治

就是把模表打成直表!!!

谢谢各位,急急急!!!
...全文
45 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuiniu 2003-09-27
  • 打赏
  • 举报
回复
select a.专业,b.考试课程1
from tablename a,
(select 考试课程1 from tablename
union
select 考试课程2 from tablename) b
where a.考试课程1 = b.考试课程1 or a.考试课程2 = b.考试课程1
order by a.专业

LingeCoding 2003-09-27
  • 打赏
  • 举报
回复
也可以用临时表来辅助完成!!!!
zjcxc 元老 2003-09-27
  • 打赏
  • 举报
回复
如果SQL语句超长8000字符,参考:
http://expert.csdn.net/Expert/topic/2303/2303308.xml?temp=.1206781
zjcxc 元老 2003-09-27
  • 打赏
  • 举报
回复
很多的情况用动态生成SQL语句的方法:

declare @sql varchar(8000)
set @sql=''
select @sql=@sql+' union all select 专业,考试课程='+name+' from 表'
from syscolumns where object_id('表')=id and name like '考试课程%'

set @sql=substring(@sql,12,8000)
exec(@sql)
zjcxc 元老 2003-09-27
  • 打赏
  • 举报
回复
select 专业,考试课程=考试课程1 from 表
union all
select 专业,考试课程=考试课程2 from 表
Stone444 2003-09-27
  • 打赏
  • 举报
回复
但是表中课程字段有很多而且你也不知道有几个
又该怎么办呢
顶一下

伍子V5 2003-09-27
  • 打赏
  • 举报
回复
create view vw_name
as
select 专业,考试课程1 as 考试课程 from tablename
union all
select 专业,考试课程2 as 考试课程 from tablename
killxtt 2003-09-26
  • 打赏
  • 举报
回复
同意
litf 2003-09-26
  • 打赏
  • 举报
回复
同意楼上
welyngj 2003-09-26
  • 打赏
  • 举报
回复
create view view_name
as select 专业,考试课程1 考试课程 from tbl
union select 专业,考试课程2 考试课程 from tbl
maoyesky 2003-09-26
  • 打赏
  • 举报
回复
select 专业,考试课程1 as 考试课程 from yourtable
union select 专业,考试课程2 as 考试课程 from yourtable order by 专业

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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