如何使不满足特定条件的行不出现在结果中

Posted

技术标签:

【中文标题】如何使不满足特定条件的行不出现在结果中【英文标题】:How to make rows that don't satisfy a certain condition not appear in a result 【发布时间】:2015-08-17 08:29:19 【问题描述】:

我有一个表 T1,其中包含以下列和行/行数据:

表 T1 child_id |孩子一个 |儿童雇用 |儿童进度 1 是 否 好 2 不 不 差 3 是 是 公平

我需要使用选择案例条件,以便只有满足我条件的行出现在结果中,不满足条件的行不应该出现在我的结果中。

当我执行时:

select (case when childOne='yes' then true else false end) from T1;

查询有效,但[childOne='No'] 行也出现了。如何使不满足特定条件的行不显示在我的结果集中?

【问题讨论】:

你可以使用where条件.. 哦...让我看看 那么您正在学习 SQL 并且还没有阅读有关 WHERE 子句的内容吗?它应该在第一页中,而 CASE WHEN 应该在以后处理。如果你的教程/书在处理基础知识之前教你更高级的东西,也许你应该给自己找一本更好的教程/书。 f.y.i Mr.Thorsten --> 我对 where 子句了如指掌。在这个问题中,我需要知道如何使用 select case where kind 子句......我没学得这么好! #ThanksAnyway 【参考方案1】:

使用低于一个-

select * 
from T1 
where childOne='yes';

案例示例:

select case when childOne='yes' then childProgress 
when childOne='No' then childHired else childOne end 
from T1 ;

【讨论】:

我希望你使用一个选择案例——一个条件选择和一个 where 子句来给我结果!我知道 where 子句是如何工作的! 当您想根据特定条件显示不同的列数据时,基本上大小写很有用,您可以在我的更新中查看示例... 那个表 T1 只是一个更大的表的 sn-p,现在我被要求根据它们的值来选择行!换句话说,我必须使用我知道并理解的 if 或 case 语句。我要问的是:我如何选择行但忽略那些不满足我的条件的行?现在得到它?? #谢谢 我知道案例条件的基础知识。这就是我需要的:如果我执行查询:选择 case when childOne='ýes' then 'yes' else [nothing];从 t1 结束; 我正在检查 childOne 列中的是或否答案值!所以如果 childOne 不等于 'yes' 那么该行不应该出现!

以上是关于如何使不满足特定条件的行不出现在结果中的主要内容,如果未能解决你的问题,请参考以下文章

获取数据表中满足特定条件的行数

HIVE/Impala 查询:计算满足特定条件的行之间的行数

只读大文本文件中满足特定条件的行

如何查询仅出现特定列中具有最高值的行的行?

如何选择出现在特定值之前的行?

Oracle-表连接