首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQL中省略特定行的列?

如何在SQL中省略特定行的列?
EN

Stack Overflow用户
提问于 2021-10-15 19:15:12
回答 3查看 51关注 0票数 0

举个例子:

代码语言:javascript
复制
select 
    pre, sze, fdm_pre, val
from 
    form_data_stage
where 
    fdm_pre in (1,2,3,4) 
order by 
    pre;

这将返回列出的任何fdm_pre值的所有列preszefdm_preval的值,即(1,2,3,4)。但是,当fdm_pre为1时,我只关心presize的值。

我可以写一个查询,比如

代码语言:javascript
复制
select 
    case when fdm_pre = 1 then pre else null end as pre, 
    case when fdm_pre = 1 then sze else null end as sze,
    fdm_pre,
    val
from 
    form_data_stage 
where 
    fdm_pre in (1,2,3,4) 
order by 
    pre;

但是,有没有一些标准的方法来处理这种情况?返回所有列通常更有效吗,即使它们不被使用?或者,像第二个查询那样做一些条件检查会更好吗?presze列是整数值。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-10-15 19:26:49

当不使用所有列时,返回所有列的效率很低,特别是当未使用的列很大时(BLOBCLOBTEXTARRAY等)。

在您的特定示例中,“未返回”列是较小的列(以字节为单位),因此如果生成空值也没什么关系。

票数 1
EN

Stack Overflow用户

发布于 2021-10-15 21:14:23

您可以使用execute string而不是这种脚本。通过这种方式,您需要的列应该放在字符串中,使用if语句,您可以决定显示哪一列,而不需要显示哪一列。如果你需要的话,我可以给你做一个样品。

票数 0
EN

Stack Overflow用户

发布于 2021-10-15 19:29:25

我认为保持查询的简洁性和易读性很重要。我建议您返回所有相关的列(这可能会很有用),并在应用程序逻辑方面处理列使用的这两个选项。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69589596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档