1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| SELECT numberofnewsbydomain (10, 'france', '1,2,3,4,5,6,7,8,9,11') AS ID,
NULL AS title, NULL AS summary, NULL AS published_on, 0 AS weight,
0 AS id_language, NULL AS code_language, 0 AS id_provider,
NULL AS code_provider, NULL AS updated_on
FROM DUAL
UNION --ALL
SELECT selectednews.ID AS ID, nn1.title AS title, nn1.summary AS summary,
nn1.published_on AS published_on, nn1.weight AS weight,
nn1.id_language AS id_language,
(SELECT ll.code
FROM mm_language ll
WHERE ll.ID = nn1.id_language) AS code_language,
nn1.id_provider AS id_provider,
(SELECT pp.code
FROM mm_newsprovider pp
WHERE pp.ID = nn1.id_provider) AS code_provider,
nn1.updated_on AS updated_on
FROM mm_newsitem nn1
JOIN
(SELECT a.*
FROM (SELECT /*+ FIRST_ROWS +*/
ROWNUM rnum, a.*
FROM (SELECT /*+ INDEX_COMBINE(NN) */
nn.ID AS ID
FROM mm_newsitem nn
WHERE contains (nn.text_concat, '(usa)') > 0
AND nn.id_provider IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 11)
ORDER BY nn.published_on DESC) a
WHERE ROWNUM <= 1124) a
WHERE rnum >= 15 OR rnum <= 4) selectednews ON selectednews.ID = nn1.ID; |
Partager