sql - 如何省略 SQL 中特定行的列?
问题描述
举个例子:
select
pre, sze, fdm_pre, val
from
form_data_stage
where
fdm_pre in (1,2,3,4)
order by
pre;
这将为列出的任何 fdm_pre 值(即 (1,2,3,4))返回所有列pre
、sze
、fdm_pre
的值。val
但是,我只关心 1 时的pre
andsize
值fdm_pre
。
我可以写一个查询,例如
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;
但是,有一些标准的方法来处理这种情况吗?即使不使用它们,返回所有列通常更有效吗?或者,在第二个查询中进行一些条件检查会更好吗?和pre
列sze
是整数值。
解决方案
在未使用时返回所有列效率不高,特别是如果未使用的列的大小很大(BLOB
、CLOB
、TEXT
、ARRAY
等)。
在您的特定示例中,“未返回”列是小列(以字节为单位),因此如果您生成空值并不重要。
推荐阅读
- netlogo - 将海龟移动到具有 xy 坐标的特定补丁 netlogo
- javascript - 使用 HTML 和 CSS 的导航栏中的子菜单大小
- python - Python opencv imwrite 不会将图像保存到目的地
- text - 如何使用 EGL 显示一些文本
- database - 为什么复制数据库的压力较小?
- php - 上传图片它不工作codeigniter
- c# - Angular 5 Uncaught(承诺):错误:StaticInjectorError(AppModule)
- reactjs - 如果单选按钮和文本输入均为空白,则禁用提交按钮
- laravel - 如何将 Composer 配置为始终下载最新版本?
- javascript - JavaScript 正则表达式没有 \p{L} 吗?在 JS 正则表达式中使用 Unicode