数据库查询问题

ql_nanjing 2019-11-22 11:38:34
高手们,条件查询如下:
select * from table1 where table1.字段A = some(查询语句2)
当“查询语句2”结果不为空时,按照满足的条件进行查询;当“查询语句2”结果为空时,忽略查询条件,直接执行“select * from table1”,请问这个查询该怎么写?
...全文
73 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ql_nanjing 2019-11-28
  • 打赏
  • 举报
回复
谢谢,搞定!
chengccy 2019-11-22
  • 打赏
  • 举报
回复
有点奇怪的需求, 改成exists , 判断2次: select * from table1 where exists (select 1 from table2 where table2.字段a=table1.字段a union all select 1 from dual where (select count(1) from table2)=0); 例子:
WITH TMP AS
 (SELECT LEVEL AS L FROM DUAL CONNECT BY LEVEL < 10) 
SELECT *
FROM   TMP T
WHERE  EXISTS (SELECT L
        FROM   TMP
        WHERE  MOD(L, 2) = 3
        AND    L = T.L
        UNION ALL
        SELECT 1
        FROM   DUAL
        WHERE  (SELECT COUNT(1) FROM TMP WHERE MOD(L, 2) = 3) = 0)

17,377

社区成员

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

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