我正在尝试筛选查询,以便只获取以这些前缀开始的字符串:
澳大利亚/澳大利亚/澳大利亚/新西兰/爱尔兰
为此,我尝试了以下SQL查询:
select PN from MyTestTable where PN like 'AC%' AND PN like 'AY%' AND PN like 'AN%' AND PN like 'AZ%' AND PN like 'IR %' ;
有没有一种方法可以使用列表或其他方式进行筛选?
vaj7vani1#
您可以使用以下查询来执行此操作:SELECT PN FROM MyTestTable WHERE SUBSTR(PN,1,2) IN ('AC','AY','AN','AZ','IR')我希望这对你有用
SELECT PN FROM MyTestTable WHERE SUBSTR(PN,1,2) IN ('AC','AY','AN','AZ','IR')
h7appiyu2#
创建临时表并使用联接:
DECLARE @Pref TABLE (val nvarchar(20)) INSERT INTO @Pref VALUES ('AC'), ('AY'), ('AN'), ('AZ'), ('IR') SELECT t.PN FROM MyTestTable AS t INNER JOIN @Pref p ON t.PN LIKE p.val+'%'
cclgggtu3#
可以将like与一系列or条件一起使用,或者使用regexp_like():
like
or
regexp_like()
select PN from MyTestTable where regexp_like(PN, '^(AC|AY|AN|AZ|IR )')
注意:这包括'IR'后面的空格,它似乎是问题的一部分。如果不需要,也可以用途:
'IR'
where left(PN, 2) in ('AC', 'AY', 'AN', 'AZ', 'IR')
3条答案
按热度按时间vaj7vani1#
您可以使用以下查询来执行此操作:
SELECT PN FROM MyTestTable WHERE SUBSTR(PN,1,2) IN ('AC','AY','AN','AZ','IR')
我希望这对你有用
h7appiyu2#
创建临时表并使用联接:
cclgggtu3#
可以将
like
与一系列or
条件一起使用,或者使用regexp_like()
:注意:这包括
'IR'
后面的空格,它似乎是问题的一部分。如果不需要,也可以用途: