求一条SQL合并语句

aim_less 2009-02-25 04:57:33
select * from table where A ='B';
select * from table where 1=1;
将上面两条SQL语句合成一条,当B有值是A='B'条件有用,当B没有值是条件不起作用。
...全文
89 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
白发程序猿 2009-02-26
  • 打赏
  • 举报
回复

SELECT column1, column2
FROM table t
WHERE t.TIME BETWEEN NVL(TO_DATE (parameter1, 'yyyy-mm-dd hh24:mi:ss'),t.TIME)
AND NVL(TO_DATE (parameter2, 'yyyy-mm-dd hh24:mi:ss'),t.TIME)
Raul_Gonzalez 2009-02-26
  • 打赏
  • 举报
回复
SELECT column1, column2
FROM table t
WHERE t.TIME BETWEEN NVL (TO_DATE (parameter1, 'yyyy-mm-dd hh24:mi:ss'),
t.TIME
)
AND NVL (TO_DATE (parameter2, 'yyyy-mm-dd hh24:mi:ss'),
t.TIME
)
aim_less 2009-02-26
  • 打赏
  • 举报
回复
其实我想实现的是
select column1,column2
from table t
where t.time
between to_date(parameter1, 'yyyy-mm-dd hh24:mi:ss') and
to_date(parameter2, 'yyyy-mm-dd hh24:mi:ss')
其中parameter1,parameter2 是从外部传入的 如果有值,则按照传入的时间范围查询,
如果没有值则查询所有包括时间为空的。
aim_less 2009-02-26
  • 打赏
  • 举报
回复
SELECT column1, column2
FROM table t
WHERE t.TIME BETWEEN NVL (TO_DATE (parameter1, 'yyyy-mm-dd hh24:mi:ss'),
t.TIME
)
AND NVL (TO_DATE (parameter2, 'yyyy-mm-dd hh24:mi:ss'),
t.TIME
)
你这样必须保证数据库里面t.time不为空
但是如果数据库里面存的时间为空的话,就只能捞到time不为空的。
xuqunying0545 2009-02-25
  • 打赏
  • 举报
回复
select * from tableB where SUBJECTCODE like nvl('aa','%');
在oracle9i测试是可行的
oraclelogan 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 aim_less 的帖子:]
select * from table where A ='B';
select * from table where 1=1;
将上面两条SQL语句合成一条,当B有值是A='B'条件有用,当B没有值是条件不起作用。
[/Quote]

问下,B是啥啊?是字段吗?B没有值是啥意思?没有看懂啊我!
bw555 2009-02-25
  • 打赏
  • 举报
回复
select  *  from table  where A like nvl('B','%'); 
fisher_tnt201 2009-02-25
  • 打赏
  • 举报
回复
B 有没有如果可以在程序里面判断的话
可以用 拼sql 写
Andy__Huang 2009-02-25
  • 打赏
  • 举报
回复
是同一个表的,你的条件不起作用
结果相当于:select * from table

如果不同表:
select * from tableA where A ='B'
union all
select * from tableB ;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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