题目:表tb字段如下
ID type title Num
1 A aaa 55
2 A bbb 40
3 C ccc 60
4 C ddd 30
从这张表中读取type=A,Num>50,并按ID进行Desc排序的数据的第一条和type=B,Num <50并按ID进行Desc排序的数据第一条。
这个SQL语句怎么写啊?
答案:
select top 1 * from tb where type='A' and num>50 order by id desc
union all
select top 1 * from tb where type='B' and num <50 order by id desc
注:UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果;UNION ALL会直接合并,会有重复的数据,当然性能更好。