sql查询如何写?

select *  from p 

WHERE P.FICDYB>='E00' AND  P.FICDYB<='E90.9999999' AND (SSBM_YB<'06.' OR SSBM_YB>'07.99999999')

image.png

现在是输入条件一次一次查询,现在有一百多行条件,如何一次查询出所有?

image.png

FineReport 匡江平 发布于 2021-1-13 10:56
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
指间沙Lv6中级互助
发布于2021-1-13 10:58

  ${if(len(lx) == 0,"","and zheng_type in ('" + lx + "')")}

类似这样子,为空的话就查所有。

最佳回答
0
krystal033Lv7高级互助
发布于2021-1-13 11:01
select *  from p  -----条件1
WHERE P.FICDYB>='E00' AND  P.FICDYB<='E90.9999999' AND (SSBM_YB<'06.' OR SSBM_YB>'07.99999999')
union all
select *  from p  -----条件2
WHERE P.FICDYB>='E00' AND  P.FICDYB<='E90.9999999' AND (SSBM_YB<'06.' OR SSBM_YB>'07.99999999')

类似这样把你的100多个条件都union

  • 匡江平 匡江平(提问者) 太麻烦,如果有几百几千也这样写?
    2021-01-13 11:04 
  • krystal033 krystal033 回复 匡江平(提问者) 问题你的需求就是这样啊 也没有办法了 哈哈
    2021-01-13 11:28 
最佳回答
0
HHHHH123Lv7中级互助
发布于2021-1-13 11:13

p这张表一共多少条数据,你要筛选的有啥共同点,你要简便筛选的话肯定只能从两方面,一个是取所有满足条件的,另外就是去除那些不满足条件的

  • 匡江平 匡江平(提问者) p表有几万条数据,我筛选的是不满足条件的数据。p表是具体的诊断编码和手术编码,几百行的条件表是维护的诊断编码和手术编码,只有在这范围内的是合格的,我筛选的是不在条件表这些范围内p表的数据
    2021-01-13 11:33 
  • HHHHH123 HHHHH123 回复 匡江平(提问者) 没太看懂你取的逻辑,要没啥规律用in 行吗,或者新建一张表,连接后进行筛选
    2021-01-13 13:32 
最佳回答
0
shirokoLv6资深互助
发布于2021-1-13 11:33

动态注入参数

image.png

image.png

这样每一行的参数都不同。

不过就因为每行参数都不同,每行都查询一次,所以这种方法比通常的过滤,速度要慢很多,请注意


最佳回答
0
浪兔Lv7初级互助
发布于2021-1-13 14:32

是否能弄一张条件表。P表子查询这个表。

  • 7关注人数
  • 530浏览人数
  • 最后回答于:2021-1-13 14:32
    请选择关闭问题的原因
    确定 取消
    返回顶部