先谢谢各位,我这里有张表,
ID TEACHERNAME TERM COURSE DEPARTMENT SHOWID CLASS BEIZHU TERMID
11 A 2009--2010 信息技术 高一段 0 高一(8)班 无 5
12 B 2009--2010 信息技术 高一段 0 高一(7)班 无 5
13 B 2009--2010 信息技术 高一段 0 高一(8)班 无 5
14 C 2009--2010 通用技术 高二段 0 高二(1)班 无 5
15 C 2009--2010 通用技术 高三段 0 高三(1)班 无 5
举个例子,我要如何写SELECT语句才能把符合B的两条记录显示出来,但字段'COURSE’只显示一个值,而不会两个‘信息技术’都显示出来,因为如果两条记录都出来的话,网页里的列表下面也会有两个‘信息技术’,我的QQ34520904,如果可以的话请加我qq,非常感谢。
ID TEACHERNAME TERM COURSE DEPARTMENT SHOWID CLASS BEIZHU TERMID
11 A 2009--2010 信息技术 高一段 0 高一(8)班 无 5
12 B 2009--2010 信息技术 高一段 0 高一(7)班 无 5
13 B 2009--2010 信息技术 高一段 0 高一(8)班 无 5
14 C 2009--2010 通用技术 高二段 0 高二(1)班 无 5
15 C 2009--2010 通用技术 高三段 0 高三(1)班 无 5
举个例子,我要如何写SELECT语句才能把符合B的两条记录显示出来,但字段'COURSE’只显示一个值,而不会两个‘信息技术’都显示出来,因为如果两条记录都出来的话,网页里的列表下面也会有两个‘信息技术’,我的QQ34520904,如果可以的话请加我qq,非常感谢。
if object_id('[tb]') is not null drop table [tb]
create table [tb]([ID] int,[TEACHERNAME] varchar(1),[TERM] varchar(10),[COURSE] varchar(8),[DEPARTMENT] varchar(6),[SHOWID] int,[CLASS] varchar(9),[BEIZHU] varchar(2),[TERMID] int)
go
insert [tb]
select 11,'A','2009--2010','信息技术','高一段',0,'高一(8)班','无',5 union all
select 12,'B','2009--2010','信息技术','高一段',0,'高一(7)班','无',5 union all
select 13,'B','2009--2010','信息技术','高一段',0,'高一(8)班','无',5 union all
select 14,'C','2009--2010','通用技术','高二段',0,'高二(1)班','无',5 union all
select 15,'C','2009--2010','通用技术','高三段',0,'高三(1)班','无',5select ID,TEACHERNAME,TERM,
COURSE = case id when (select min(id) from tb where [TEACHERNAME] = t.[TEACHERNAME])
then COURSE else '' end,
DEPARTMENT,SHOWID,CLASS,BEIZHU,TERMID
from [tb] t
where [TEACHERNAME] = 'B'ID TEACHERNAME TERM COURSE DEPARTMENT SHOWID CLASS BEIZHU TERMID
----------- ----------- ---------- -------- ---------- ----------- --------- ------ -----------
12 B 2009--2010 信息技术 高一段 0 高一(7)班 无 5
13 B 2009--2010 高一段 0 高一(8)班 无 5(2 行受影响)
select ID,TEACHERNAME,TERM,
COURSE = case id when (select min(id) from TEACHERCOURSE where [TEACHERNAME] = t.[TEACHERNAME])
then COURSE else '' end,
DEPARTMENT,SHOWID,CLASS,BEIZHU,TERMID
from TEACHERCOURSE t
where [TEACHERNAME] = 'B'