sql - Oracle:为每个集群选择至少一条记录

标签 sql oracle

查看以下查询:

SELECT *
FROM ENI_FLUSSI_HUB c1
WHERE flh_tipo_processo_cod IN ('VA', 'NUOVA_ATT_ENI')
AND rownum < 10

它只是提取一些 VA。我需要提取一些 VA 和一些 NUOVA_ATT_ENI。

最优雅的方法是什么?

最佳答案

你可以这样做:

SELECT *
FROM ENI_FLUSSI_HUB c1
WHERE flh_tipo_processo_cod = 'VA'
AND rownum < 5

UNION 

SELECT *
FROM ENI_FLUSSI_HUB c1
WHERE flh_tipo_processo_cod = 'NUOVA_ATT_ENI'
AND rownum < 5

如果没有任何重复值,您可以使用UNION ALL执行得更快:

SELECT *
FROM ENI_FLUSSI_HUB c1
WHERE flh_tipo_processo_cod = 'VA'
AND rownum < 5

UNION ALL

SELECT *
FROM ENI_FLUSSI_HUB c1
WHERE flh_tipo_processo_cod = 'NUOVA_ATT_ENI'
AND rownum < 5

正如 @DavidAldridge 所说,您始终可以使用 View 来进行此选择。

关于sql - Oracle:为每个集群选择至少一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10650254/

相关文章:

sql - PL/SQL 添加多列查询单函数

sql - 取消 SQL *PLUS 执行而不引发错误

sql - 在 SQL 中使用 AND 操作的多列数据集

mysql - 按小时或按天对记录进行分组,并在 mysql 中用零或空值填充空白

sql - 通过命令提示符导入 Oracle 数据库 .sql 文件

sql - 查找一组日期范围中的空白的好方法是什么?

sql - Oracle:从systables/information_schema中查找索引创建日期吗?

sql - 让 mysql select 语句返回完全限定的列名,如 table.field

sql - tSQL - 从 varchar 到数字的转换适用于除整数之外的所有字符

mysql - 组合 SQL SUM 子句