j'ai la requete suivante
SELECT 1 FROM table WHERE
col_ID = 'xxx'
AND date >= TO_DATE( '01/01/1800', 'DD/MM/YYYY' ).
je ne comprends pas la partie : select 1 ?
une explication ?
merci
j'ai la requete suivante
SELECT 1 FROM table WHERE
col_ID = 'xxx'
AND date >= TO_DATE( '01/01/1800', 'DD/MM/YYYY' ).
je ne comprends pas la partie : select 1 ?
une explication ?
merci
Cette requête retournera une seule colonne contenant la valeur numérique 1 et autant de lignes que correspondant à la sélection.
Pourquoi faire celà ?
Le plus souvent pour vérifier l'existence d'au moins une ligne correspondant à la sélection, lorsque le contenu de la ligne n'a pas d'intérêt pour le reste de la requête. Le contenu des lignes correspond à un certain volume de données, qu'il n'est pas toujours utile de manipuler
Le plus souvent, c'est utilisé dans le cadre d'une sous-requête corellée du style :
Dans ce cas, un bon optimiseur ira simplement consulter l'index existant sur la colonne tableB.id (s'il existe), sans avoir besoin de consulter les données de la table tableB.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT a.colonne FROM tableA AS a WHERE NOT EXISTS ( SELECT 1 FROM tableB AS b WHERE a.id = b.id )
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous,
N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton
et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.
Partager