Compte tenuSQL JOIN Avec Repli
CREATE TABLE Addresses
Id INT NOT NULL
Zip NVARCHAR(5) NULL
ZipPlus4 NVARCHAR(9) NULL
CREATE TABLE ZipLookup
Zip NVARCHAR(5) NULL
Code NVARCHAR(10) NULL
CREATE TABLE ZipPlus4Lookup
ZipPlus4 NVARCHAR(9) NULL
Code NVARCHAR(10) NULL
et données comme
Addresses
1 | 92123 | 921234444
ZipLookup
92123 | Type A
ZipPlus4Lookup
921234444 | Type B
Est-il possible de construire une requête telle que:
Une ligne donnée dans les adresses est externe joint à ZipPlus4Lookup s'il y a un match
Addresses.ZipPlus4 = ZipPlus4Lookup.ZipPlus4
Sinon, la ligne donnée dans les adresses est externe reliée à ZipLookup s'il existe une correspondance
Addresses.Zip = ZipLookup.Zip
Sinon ni table est externe a rejoint
En clair, la table d'adresses a un code postal et une colonne ZipPlus4 et je dois rechercher un code en utilisant le match le plus précis. S'il y a une correspondance sur Zip + 4, utilisez le code de cette correspondance. Sinon, utilisez le code d'une correspondance Zip.
Je souhaite avoir une tentative de requête à partager, mais avec celui-ci, je ne sais pas par où commencer.
Quelle version de SQL Server? – ErikE