我希望用postgresql找到所有行if is显示一次特定值
例如:
id TIT_CODE CLI_NOM CLI_PRENOM CLI_ENSEIGNE
1 M. DUPONT Alain A
2 M. MARTIN Marc A
3 M. BOUVIER Alain V
4 M. DUBOIS Paul D
5 M. DREYFUS Jean C
6 M. FAURE Alain C
11 M. DUPONT Alain B
12 M. DUVAL Arsène B
13 M. DUPONT Alain B
16 M. CHABAUD Daniel A我希望所有行都是CLI_ENSEIGNE = 'A‘,但不仅仅是希望CLI_NOM有一个CLI_ENSEIGNE = 'A'的行,甚至只有一次:
我们看到杜邦人得了A,A,B
id TIT_CODE CLI_NOM CLI_PRENOM CLI_ENSEIGNE
1 M. DUPONT Alain A
2 M. MARTIN Marc A
11 M. DUPONT Alain B
13 M. DUPONT Alain B
16 M. CHABAUD Daniel A我试过了
SELECT
*
FROM
table
WHERE
CLI_ENSEIGNE = 'A'
IN (CLI_NOM)但这是说CLI_NOM不存在
发布于 2014-02-24 19:47:16
你所在的条款是不完整的,无论如何也不会那样工作。
为此,您需要一个子选择:
SELECT *
FROM the_table
WHERE cli_nom in (select cli_nom
from the_table
where CLI_ENSEIGNE = 'A' );或者,带有exists子句的与共同相关的子选择:
SELECT t1.*
FROM the_table t1
WHERE EXISTS (select 42
from the_table t2
where t2.cli_nom = t1.cli_nom
and CLI_ENSEIGNE = 'A' );发布于 2014-02-24 19:53:28
尝试:
select * from x where cli_ensiegne ='A' or cli_nom in (select cli_nom from x where cli_ensiegne ='A')
杜邦得了2次B。
https://dba.stackexchange.com/questions/59554
复制相似问题