dsp*_*spl 4 postgresql numeric
这可能很幼稚,但我想知道有什么方法可以找到具有偶数条目和奇数条目的行。我有这种格式的数据
"41,43,45,49,35,39,47,37"
"12,14,18,16,20,24,22,10"
"1,2,3,4,5,6"
"1,7,521,65,32"
Run Code Online (Sandbox Code Playgroud)
我曾尝试将这些值与 Id 列分开,然后使用 Even 和 Odd 函数读取它们,但这太花时间了。是否有查询或函数通过我可以找出哪些行是偶数、奇数序列和任意行?
提前致谢。
假设您的表有某种方式(唯一)识别这些列表中的每一个,这应该有效:
create table data (id integer, list text);
insert into data
values
(1, '41,43,45,49,35,39,47,37'),
(2, '12,14,18,16,20,24,22,10'),
(3, '1,2,3,4,5,6'),
(4, '1,7,521,65,32');
with normalized as (
select id, unnest(string_to_array(list,',')::int[]) as val
from data
)
select id,
bool_and((val % 2) = 0) as all_even,
bool_and((val % 2) <> 0) as all_odd
from normalized
group by id;
Run Code Online (Sandbox Code Playgroud)
不确定这是否足以满足您的需求