Dans une requête j’utilisais un critère EX (ex est une colonne texte) que je dois remplacer pas un to_char(EMIS,’YYYY’) (emis est une colonne timestamp)
AND ex >= (EXTRACT (YEAR FROM CURRENT_DATE)-2)::text
devient
AND to_char(emis,'YYYY') >= (EXTRACT (YEAR FROM CURRENT_DATE)-2)::text
Je vois que cette requête est beaucoup plus longue,
Y aurait-il plus rapide au niveau syntaxe pour faire cela ?
Réponse :
Supposons qu'un index ait été créé directement sur la colonne EMIS. Tu peux donner la possibilité au planner de le considérer en n’appliquant pas de fonction sur cette colonne dans la clause WHERE.
Exemple :
Code : Tout sélectionner
select count(*) from NOM_TABLE
where emis >= date_trunc('year', current_date)- interval '2' year;