SQLite或运算符
我需要从符合以下条件的表中选择步骤列: 工会代码990和SFMTA或COMMN的集合ID。 我写了以下内容:SQLite或运算符,sql,sqlite,select,where-clause,Sql,Sqlite,Select,Where Clause,我需要从符合以下条件的表中选择步骤列: 工会代码990和SFMTA或COMMN的集合ID。 我写了以下内容: select Step from .. where Union_Code = 990 AND (SetID = 'SFMTA' or 'COMMN'); 上述查询不返回任何行,解决方案是表达式: select Step from ... where Union_code = 990 and (SetID = 'SFMTA' or SetID = 'COMMN') 我正在使
select Step
from ..
where Union_Code = 990 AND (SetID = 'SFMTA' or 'COMMN');
上述查询不返回任何行,解决方案是表达式:
select Step
from ...
where Union_code = 990 and (SetID = 'SFMTA' or SetID = 'COMMN')
我正在使用SQL Lite,无法理解OR语句的表达式的原因。下面是SQL标准的正确方法
select Step
from ...
where Union_code = 990 and SetID in ('SFMTA', 'COMMN');
OR子句仅在使用满足以下任一情况的不同列集进行筛选时使用,或者是期望条件为左操作数和右操作数的布尔运算符:
< condition 1 > OR < condition 2>
您需要使用一个条件作为正确的操作数,以使代码实现所需的功能—正如您所发现的:
SetID = 'SFMTA' or SetID = 'COMMN'
请注意,这用运算符IN表示更简单,它检查左操作数是否等于右操作数列表中给定的任何值:
SetID in ('SFMTA', 'COMMN')
SetID in ('SFMTA', 'COMMN')