select max(id) as id1 From a union all
select max(id) as id2 From b union all
select max(id) as id3 From c得出的结果集为id1
10
11
12想改为横向显示id1 id2 id2
10 11 12请大家赐教!
select max(id) as id2 From b union all
select max(id) as id3 From c得出的结果集为id1
10
11
12想改为横向显示id1 id2 id2
10 11 12请大家赐教!
(select max(id) From b) as id2,
( select max(id) From c) as id3
id1 = (select max(id) From a),
id2 = (select max(id) From b),
id3 = (select max(id) From c)
(select max(id) From b where m_del = ) as id2,
( select max(id) From c where m_del = ) as id3 如果都有 where m_del = 0 一样的条件,可否简化输入呢。
select id1 = (select max(id) From a),
id2 = (select max(id) From b),
id3 = (select max(id) From c)
--SQL SERVER 2000 静态SQL,指课程只有语文、数学、物理这三门课程。(以下同)
select 姓名 as 姓名 ,
max(case 课程 when '语文' then 分数 else 0 end) 语文,
max(case 课程 when '数学' then 分数 else 0 end) 数学,
max(case 课程 when '物理' then 分数 else 0 end) 物理
from tb
group by 姓名--SQL SERVER 2000 动态SQL,指课程不止语文、数学、物理这三门课程。(以下同)
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
from (select distinct 课程 from tb) as a
set @sql = @sql + ' from tb group by 姓名'
exec(@sql) --SQL SERVER 2005 静态SQL。
select * from tb a pivot (max(分数) for 课程 in (语文,数学,物理)) b--SQL SERVER 2005 动态SQL。
declare @sql varchar(8000)
select @sql = isnull(@sql + '],[' , '') + 课程 from tb group by 课程
set @sql = '[' + @sql + ']'
exec ('select * from (select * from tb) a pivot (max(分数) for 课程 in (' + @sql + ')) b')
select id1 = max(a.id),
id2 = max(b.id),
id3 = max(c.id)
from a,b,c
where a.m_del = 0 and b.m_del = 0 and c.m_del = 0--试试!没测试。
(select max(id) From b) as id2,
( select max(id) From c) as id3 可否这样select (select max(id) From a)as id1,
(select max(id) From b) as id2,
( select max(id) From c) as id3,
(id1 + id2 + id3) as id4 呢?
select
(select max(id) From a) as id1,
(select max(id) From b) as id2,
(select max(id) From c) as id3,
(select max(id) From a)+(select max(id) From b)+( select max(id) From c)
as id4