繁体   English   中英

检查第一个或第二个条件是否存在

[英]Check if the first or second condition exists

我在选择查询时遇到了一个小问题,即当我想用下面的代码检查第一个条件时

select * from VL_Faktura_Queue where FAK_KundenNr=127849  AND (FAK_BoMatNr LIKE '%verk%' AND FAK_VerrechnetBis ='0001-01-01') 

,它向我显示了一个位置,但是当我添加一个条件时,我想检查是否有FAK_KundenNrFAK_BomatNr LIKE '% Verk%' OR FAK_BoMatNr Like 'Zus%'也会向我抛出不属于FAK_KundenNr = 127849不同值FAK_KundenNr = 127849 ,因为我可以轻松检查它是否返回了我的这个KundenNr值,其中有 1 或 2 条件。

这是我的查询:

select * from VL_Faktura_Queue where FAK_KundenNr=127849 
AND (FAK_BoMatNr LIKE '%verk%' AND FAK_VerrechnetBis ='0001-01-01') --this would be the first condition 
or FAK_BoMatNr like 'Zus%' --and this the second condition

这是我应该得到的个人选择,但在最后的一个查询中

在此处输入图片说明

所以我的问题是如何从图片中的这两个查询中选择一个查询,谢谢大家的帮助

你的括号是不够的。 AND优先于OR ,所以你有FAK_KundenNr = 127849 AND (<first condition)> OR FAK_BoMatNr like 'Zus%'

SELECT * 
FROM VL_Faktura_Queue 
WHERE FAK_KundenNr = 127849 
AND
(
  (FAK_BoMatNr LIKE '%verk%' AND FAK_VerrechnetBis = '0001-01-01')
 or 
  FAK_BoMatNr LIKE 'Zus%'
);

根据您的要求,您需要将“AND”运算符与其他逻辑“OR”运算符结合使用。

    SELECT * 
    FROM VL_Faktura_Queue
    WHERE 
        (
          (   FAK_BoMatNr LIKE '%verk%' 
          AND FAK_VerrechnetBis = '0001-01-01'
          )  -- 1st Condition
          or 
          (FAK_BoMatNr LIKE 'Zus%')  -- 2nd Condition
        )
    AND FAK_KundenNr = 127849;  

请检查此解决方案是否适合您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM