requête sql un peu complexe
bonjour,
Voici une requête sql un peu difficile à comprendre, car je ne comprends pas la clause When et les différentes jointures, du fait que j'ai appris sql sous Oracle.
Pouvez vous m'aider à la comprendre.
Je ne comprends pas le signe >= de la clause When.
Merci beaucoup à vous, car je bute sur cette requête depuis quelque temps sans en comprendre le sens vraiment.
Bien cordialement.
Nathalie
Code:
1 2 3 4 5 6 7 8 9 10
|
SELECT dbo.MICROTHESAURUS.ID_TERME_SOURCE, dbo.TERMES.Lib_TERME,
CASE WHEN ISNULL(d .id_micro_thesaurus, 0) >= microthesaurus.id_micro_thesaurus THEN ISNULL(d .id_micro_thesaurus, 0)
ELSE microthesaurus.id_micro_thesaurus END AS id_micro_thesaurus,
dbo.GENERIQUES.ID_TERME_GENERIQUE, dbo.MICROTHESAURUS.ID_MICRO_THESAURUS AS bad_id_microthesaurus,
dbo.MICROTHESAURUS.ID_THES
FROM dbo.MICROTHESAURUS INNER JOIN dbo.TERMES ON dbo.MICROTHESAURUS.ID_TERME_SOURCE = dbo.TERMES.ID_TERME
INNER JOIN dbo.GENERIQUES ON dbo.GENERIQUES.ID_TERME_SOURCE_G = dbo.TERMES.ID_TERME
LEFT OUTER JOIN dbo.MICROTHESAURUS d ON d .ID_TERME_SOURCE = dbo.GENERIQUES.ID_TERME_GENERIQUE |
J'ai besoin que cette requête exprime que s'il y a une correspondance avec la table MICROTHESAURUs alors id_micro_thesaurus a une valeur, sinon, la valeur de id_micro_thesaurs est 'NULL'