如何正确编写SQL查询

时间:2015-05-28 18:07:00

标签: sql

我正在尝试编写SQL查询但不确定如何正确地执行我想要实现的目标。现在我有

position: absolute

所以基本上如果作业的状态为NE或状态为RU且队列匹配concat字符串,那么它应该产生结果。

4 个答案:

答案 0 :(得分:3)

您应该使用括号将子句组合在一起。

select id 
from job 
where 
    (status = 'NE' or status = 'RU')
    and (queue = CONCAT('VA-', varVappId) 
    or queue = CONCAT('CL-', varClientId, '||', 'VA-', varVappId));

答案 1 :(得分:3)

缺少括号。

select id 
from job 
where (status = 'NE' 
    or status = 'RU' )
    and (queue = CONCAT('VA-', varVappId) 
    or queue = CONCAT('CL-', varClientId, '||', 'VA-', varVappId));

select id 
from job 
where status in( 'NE','RU' )
    and (queue = CONCAT('VA-', varVappId) 
    or queue = CONCAT('CL-', varClientId, '||', 'VA-', varVappId));

答案 2 :(得分:1)

在你的where条件下OR条件应该从AND使用()分离,所以OR条件将首先检查,它将与AND结合

select id 
from job 
        where (status = 'NE' or status = 'RU' ) and 
    (queue = CONCAT('VA-', varVappId) or 
    queue = CONCAT('CL-', varClientId, '||', 'VA-', varVappId));

答案 3 :(得分:0)

组子句需要缺少一些参数。这也是一般格式,如果这也是你需要的东西。

SELECT id 
  FROM job 
 WHERE status IN( 'NE','RU' )
       AND (queue = CONCAT('VA-', varVappId) 
       OR queue = CONCAT('CL-', varClientId, '||', 'VA-', varVappId));