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
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'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager