我正在尝试查询包含
等字符串的列595.1,N30.10
630.5,E10
我尝试将这两个值分成不同的列
split_part(code, ',', 1) AS code1,
split_part(code, ',', 2) AS code2
但现在我看到有些行有3个(或可能更多)
785.59, R57.1, R
我想知道是否有办法只指定和查询字符串的第一部分而不必拆分字符串。在这种情况下,只查找具有595.1,785.59的enteries并忽略其余部分。
SELECT distinct ON (id) id,time,year,code
FROM data
where code= ANY('{595.1,785.59}');
答案 0 :(得分:1)
我认为你已经拥有了你需要的逻辑,你只需要将它连接在一起:
SELECT DISTINCT ON (id) id, time, year, code
FROM data
WHERE split_part(code, ',', 1) = ANY('{595.1,785.59}');
这个逻辑似乎在下面的演示中有效。
答案 1 :(得分:1)
要查询代码列的第一部分,您可以执行以下操作
SELECT * FROM tableName
WHERE split_part(code, ',', 1) = somevalue