我正在嘗試創建一個變量,它可以幫助我查找檢查點行,然後查詢該檢查點之後的行。Oracle SQL偏移行號
起初,我在考慮使用ROWID,但因爲ROWID的形式是非整數。這似乎有點不妥。
無論如何,一個必需的過程是創建一個行偏移未在甲骨文方便支持:
我不斷收到
ORA-00904:「項目」「ID」:無效的標識符
該變量是來自表ITEM的ID列的Item_ID。
select ITEM.ID,ITEM.CREATEDDATE,ITEM.TYPEID,
CAT_DIC_AUTHOR.DISPLAYENTRY,
CAT_DIC_PUBLISHER.DISPLAYENTRY,
CAT_DIC_KEYWORD.ACCESSENTRY,CAT_DIC_KEYWORD.DISPLAYENTRY,
CAT_DIC_LANGUAGE.DISPLAYENTRY,CAT_DIC_LANGUAGE.NAMEVIET,
CAT_DIC_SH.DISPLAYENTRY,
CAT_DIC_ITEM_TYPE.ACCESSENTRY,CAT_DIC_ITEM_TYPE.TYPENAME
from (select rownum r,ITEM.ID from ITEM)
LEFT JOIN ITEM_AUTHOR
ON ITEM.ID=ITEM_AUTHOR.ITEMID
LEFT JOIN CAT_DIC_AUTHOR
ON ITEM_AUTHOR.AUTHORID=CAT_DIC_AUTHOR.ID
LEFT JOIN ITEM_PUBLISHER
ON ITEM.ID=ITEM_PUBLISHER.ITEMID
LEFT JOIN CAT_DIC_PUBLISHER
ON ITEM_PUBLISHER.PUBLISHERID=CAT_DIC_PUBLISHER.ID
LEFT JOIN ITEM_KEYWORD
ON ITEM.ID=ITEM_KEYWORD.ITEMID
LEFT JOIN CAT_DIC_KEYWORD
ON ITEM_KEYWORD.KEYWORDID=CAT_DIC_KEYWORD.ID
LEFT JOIN ITEM_LANGUAGE
ON ITEM.ID=ITEM_LANGUAGE.ITEMID
LEFT JOIN CAT_DIC_LANGUAGE
ON ITEM_LANGUAGE.LANGUAGEID=CAT_DIC_LANGUAGE.ID
LEFT JOIN ITEM_SH
ON ITEM.ID=ITEM_SH.ITEMID
LEFT JOIN CAT_DIC_SH
ON ITEM_SH.SHID=CAT_DIC_SH.ID
LEFT JOIN CAT_DIC_ITEM_TYPE
ON ITEM.TYPEID=CAT_DIC_ITEM_TYPE.ID
where r>100 and r<=200
你試過了'PARTITION BY'條款? – Rachcha
你可以發佈實際的字符串q,而不僅僅是它的構建代碼嗎? –
@ Ghita:更新! – MikeNQ