gpt4 book ai didi

sql - 选择具有多个相同值列的行

转载 作者:行者123 更新时间:2023-11-29 11:58:53 27 4
gpt4 key购买 nike

有一个表 table1,列如下:

name, dept, col1, col2, col3, col4, col5

我需要在多列中查找具有相同值的行 - 例如col2、col3、col4、col5

虽然像下面这样的方法会起作用,但我需要一种方法,即使对于大量列也能起作用,而不必具有多个 条件。

select * 
from table1
where col2 = col3 and col3 = col4 and col4 = col5

最佳答案

示例数据..

CREATE TABLE foo
AS
SELECT id,
trunc(random()*10) AS col1,
trunc(random()*10) AS col2,
trunc(random()*10) AS col3,
trunc(random()*10) AS col4
FROM generate_series(1,1e6)
AS gs(id);

使用ALL

此方法要短得多,但您仍然必须输入一次所有列名。

SELECT * FROM foo
WHERE col1 = ALL(ARRAY[col2,col3,col4]);

动态sql..

SELECT format(
'SELECT * FROM foo WHERE %s;',
(
SELECT string_agg('col1 = col'||id, ' AND ')
FROM generate_series(2,4) AS id
)
);

关于sql - 选择具有多个相同值列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43405395/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com