如何选择仅以特定前缀开始的字符串

3b6akqbq  于 2022-11-07  发布在  DB2
关注(0)|答案(3)|浏览(142)

我正在尝试筛选查询,以便只获取以这些前缀开始的字符串:

澳大利亚/澳大利亚/澳大利亚/新西兰/爱尔兰

为此,我尝试了以下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 %' ;

有没有一种方法可以使用列表或其他方式进行筛选?

vaj7vani

vaj7vani1#

您可以使用以下查询来执行此操作:
SELECT PN FROM MyTestTable WHERE SUBSTR(PN,1,2) IN ('AC','AY','AN','AZ','IR')
我希望这对你有用

h7appiyu

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+'%'
cclgggtu

cclgggtu3#

可以将like与一系列or条件一起使用,或者使用regexp_like()

select PN
from MyTestTable
where regexp_like(PN, '^(AC|AY|AN|AZ|IR )')

注意:这包括'IR'后面的空格,它似乎是问题的一部分。如果不需要,也可以用途:

where left(PN, 2) in ('AC', 'AY', 'AN', 'AZ', 'IR')

相关问题