我正在尝试查询第1列包含非常随机元素的字符串的所有行。但是,字符串的最后两三个元素是十六进制值或十进制(0-255),如:
Column 1 | Column 2
00000587-8bb4-4360-9b0b-79012c14aa6d | 1
00000541-1895-4b13-9de2-7be77dda5de6 | 2
000005db-da97-483d-9efb-69222bbc7b57 | 3
我需要获取第1列包含一个字符串的行,该字符串以十六进制值结尾,范围从e6到f2或0-255
通常会使用像where acc.accountid ilike '%e6'
之类的东西,并对范围内的所有值重复一遍,但必须有更有效的方法吗?
答案 0 :(得分:1)
核心方式是:
SELECT *
FROM my_table
WHERE ('x' || substring (col1 FROM length(col1) - 1))::bit(8)::integer
BETWEEN 50 AND 200
答案 1 :(得分:0)
您可以匹配以下值列表:
field IN ('e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ef', 'eg', 'f0', 'f1', 'f2')
问候。