我希望选择表中的所有行,即使特定列中的一个值也不同于该列中的任何值。
因此,要检查所有行是否不同,我首先执行count(distinct col_name)>1
。
| NAME | YEAR_BORN | SCHOOL |
| Jack | 2000 | A |
|Jill |2001 |A |
|Jane |2000 |A |
由于吉尔的出生年份与杰克和简不同, 我想按原样显示该列。如果吉尔(Jill)和他们同年出生,我就不希望退回任何东西。
如果满足此条件,我现在应如何选择所有行?
答案 0 :(得分:1)
在where子句中需要一个子查询:
select * from tablename
where (select count(distinct year_born) from tablename) > 1
请参见dlopen
。
结果:
| NAME | YEAR_BORN | SCHOOL |
| ---- | --------- | ------ |
| Jack | 2000 | A |
| Jill | 2001 | A |
| Jane | 2000 | A |
答案 1 :(得分:0)
您可以尝试SELECT * FROM table_name WHERE count(distinct col_name)>1