用变量年岁=20 检索不到数据时就用3变量年岁=30 来检索
SELECT * FROM T WHERE AGE= 变量年岁
要求:用变量年岁=20 检索不到数据时就用3变量年岁=30 来检索
这个SQL怎样写成一条语句?
谢谢了!
问题点数:20、回复次数:7Top
1 楼njhart2003()回复于 2006-01-12 11:42:32 得分 0
奇怪,用IN('20','30')不就行了?Top
2 楼boydgmx(授人以鱼不如授人以渔(baidu&google))回复于 2006-01-12 11:48:25 得分 0
SELECT * FROM (SELECT * FROM T WHERE AGE IN (20,30) ORDER BY AGE ASC) WHERE ROWNUM<=1Top
3 楼duanzilin(寻)回复于 2006-01-12 12:09:43 得分 0
SELECT * FROM T WHERE AGE= 20
union all
SELECT * FROM T WHERE AGE= 30
where not exists (SELECT * FROM T WHERE AGE= 20)Top
4 楼duanzilin(寻)回复于 2006-01-12 12:14:42 得分 20
或者这样:
SELECT * FROM (SELECT t.*,dense_rank() over(order by age) dr FROM T WHERE AGE IN (20,30)) WHERE dr = 1Top
5 楼xjqqxjqq(JAI)回复于 2006-01-12 12:22:19 得分 0
直接用IN('20','30')最简单。Top
6 楼duanzilin(寻)回复于 2006-01-12 12:49:53 得分 0
楼主说的是检索不到age = 20 的数据时再检索age = 30,如果age在20和30都有数据的话,那么就只取 age = 20 的数据,用IN('20','30')符合要求吗?Top
7 楼love_2008(love2008)回复于 2006-01-13 17:03:35 得分 0
select * from user where age=20
or(age=30 and not exists(
select 1 from wang where age=20))
不知道是不是 你想要的结果
Top




