我得到了这样的查询
SELECT
IMAGE_PATH, IMAGE_ID, DOC_NID
FROM
TBL_IMAGE WHERE IMAGE_ORD = 1
并遵守条件
没有子查询可以处理吗?
答案 0 :(得分:0)
试试这个:
SELECT
IMAGE_PATH, IMAGE_ID, DOC_NID, Max(image_ord)
FROM
TBL_IMAGE WHERE IMAGE_ORD = 1 group by IMAGE_PATH, IMAGE_ID, DOC_NID
答案 1 :(得分:0)
根据您的要求:
“image_ord [...]有一些重复”
“我只需要一行具有最大值image_ord”
WITH C AS ( SELECT MAX(IMAGE_ORD) M FROM TBL_IMAGE )
SELECT
TBL_IMAGE.IMAGE_PATH, TBL_IMAGE.IMAGE_ID, TBL_IMAGE.DOC_NID
FROM
TBL_IMAGE JOIN C ON IMAGE_ORD = C.M
WHERE ROWNUM < 2
WITH ...
语句将检索image_ord
字段SELECT ...
语句将在上面的临时表中使用JOIN
WHERE ROWNUM < 2
会将结果数量限制为1行请注意,如果没有(明确的)ORDER BY
子句,SELECT
语句的结果应被视为无序的行集。因此,在重复的情况下,您不应该依赖于返回的任何特定行(甚至同一行)。只有“one”行具有最大image_ord
值。
答案 2 :(得分:0)
我通过跟随查询来解决自己的问题。 无论如何,我不得不使用子查询并添加一些额外的函数在上括号中使用。
select
doc_nid, max(image_ord) as image_ord
from
(
select
doc_nid, nvl(image_ord, 0) as image_ord
from
tbl_image
where
doc_nid is not null
)
group by doc_nid