Requête avec des NULL dans des dates
Bonjour,
J'ai un petit problème de requête. J'ai un bloc PL/SQL qui a deux paramètres en entrée qui sont date_deb et date_fin. ce script sql est lancé par un shell linux.
Et je vais simplifier la requête c'est quelque chose comme ça :
Code:
1 2
| SELECT * FROM ma_table
WHERE date BETWEEN date_deb AND date_fin; |
Sauf que, et c'est là que ça pose problème. Selon ce que lui envoie le shell, les paramètres peuvent soit avoir une valeur (DD/MM/YYYY) soit avoir la valeur 'NULL'
Les paramètres sont évidemment des chaînes de caractères mais j'arrive à les transformer en format DATE et leur donner soit la date, soit la valeur null.
Par contre, c'est dans la requête que ça merde.
Si les deux paramètres sont égaux à NULL, la requête deviendrait :
Code:
SELECT * FROM ma_table;
Si date_deb est renseignée et date_fin est à NULL :
Code:
1 2
| SELECT * FROM ma_table
WHERE date >= date_deb; |
Si date_deb est à NULL et date_fin est renseignée :
Code:
1 2
| SELECT * FROM ma_table
WHERE date <= date_fin; |
et si les deux dates sont renseignées :
Code:
1 2
| SELECT * FROM ma_table
WHERE date BETWEEN date_deb AND date_fin; |
Y-a-t 'il une façon de gérer tout ça dans une seule requête ?
Merci pour votre aide.
Michel