SELECT * FROM (SELECT ef.id, ef.nodeId, ec.name, &nbs...
显示全部SELECT *
FROM (SELECT ef.id,
ef.nodeId,
ec.name,
ef.contentId,
ef.publishUrl,
ec.date,
ROWNUMBER () OVER (ORDER BY ef.id DESC) AS RN1
FROM ecms_content_info ef, ecms_content_items ec
WHERE ef.nodeId IN (SELECT nodeid
FROM ecms_nodes
WHERE tableid = 184)
AND ef.contentId = ec.contentId
AND ef.Status = '0'
AND (ec.name LIKE '%机械%')
UNION ALL
SELECT ef.id,
ef.nodeId,
ec.name,
ef.contentId,
ef.publishUrl,
ec.date,
ROWNUMBER () OVER (ORDER BY ef.id DESC) AS RN1
FROM ecms_content_info ef, ecms_content_person ec
WHERE ef.nodeId IN (SELECT nodeid
FROM ecms_nodes
WHERE tableid = 186)
AND ef.contentId = ec.contentId
AND ef.Status = '0'
AND (ec.name LIKE '%机械%')
UNION ALL
SELECT ef.id,
ef.nodeId,
ec.name,
ef.contentId,
ef.publishUrl,
ec.date,
ROWNUMBER () OVER (ORDER BY ef.id DESC) AS RN1
FROM ecms_content_info ef, ECMS_CONTENT_ENTERPRISE ec
WHERE ef.nodeId IN (SELECT nodeid
FROM ecms_nodes
WHERE tableid = 185)
AND ef.contentId = ec.contentId
AND ef.Status = '0'
AND (ec.name LIKE '%机械%')) AS A1
WHERE A1.RN1 BETWEEN 1 AND 20
你限定的是每个Union子集取20条
你要随机取20条的话
直接通过fetch first 20 rows only不行么?
收起