查看以下查询:
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/