我正在构建一个SQL Developer查询来检索具有指定状态的记录'。也可以选择多个值。如何更新我的查询以包含多个"状态"值?以分号分隔,即关闭;未决
这是我的查询,它只返回具有单一状态的记录:
Select * from LOGS where Status= 'Off' or Status = 'Pending' or Status = 'ON';
答案 0 :(得分:1)
Select * from LOGS where Status= 'Off' and Status = 'Pending' and Status = 'ON';
你必须代表OR而不是AND,同一列不能在同一行上有这3个值
Select * from LOGS where Status= 'Off' or Status = 'Pending' or Status = 'ON';
此更改将允许您获取这3个状态中的任何一个有效的每个LOGS行
如果您的意思是状态可以有多个值,例如“关闭;待定;开启”,您只需要:
Select * from LOGS where Status like '%Off%' or Status like '%Pending%' or Status like '%ON%';
这意味着“将所有已关闭的状态,即使它处于离线状态,123Off123”以及其他情况等等,所以要小心你的状态
答案 1 :(得分:0)
怎么样:
Select * from LOGS
where
concat('; ', Status,'; ') like '%; Off; %' or
concat('; ', Status,'; ') like '%; Pending; %' or
concat('; ', Status,'; ') like '%; On; %' ;
或者更好
Select * from LOGS
where
REGEXP_LIKE (concat('; ', Status,'; '),'; Off; |; Pending; |; On; ')