Bedste svar
Oracles NVL-funktion giver dig mulighed for at erstatte null med en streng i resultaterne af en forespørgsel. Det er nyttigt at slippe af med nulværdier.
Her er syntaksen:
NVL(exp\_to\_check, replacement\_value)
Hvis exp\_to\_check er null, så returnerer NLV () replacement\_value. Hvis exp\_to\_check ikke er null, NLV () returnerer exp\_to\_check.
Selvom PostgreSQLs COALESCE () -funktion ikke er et nøjagtigt match, giver den en meget lignende funktionalitet. Den accepterer et ubegrænset antal argumenter og returnerer det første argument, der ikke er nul. Hvis alle argumenter er nul, returnerer COALESCE nul. Dens syntaks er:
COALESCE (argument\_1, argument\_2, …)
Her er et par grundlæggende eksempler til illustrering ved hjælp af min Navicat for PostgreSQL databaseudviklingsklient:
Brug af COALESCE () i en reel forespørgsel
Her er et mere realistisk eksempel ved hjælp af Sakila-eksempeldatabase:
Adressetabellen indeholder en adresse og adresse2-felt. Sidstnævnte kan være null. Vi kan erstatte dem med værdien “N / A” ved hjælp af COALESCE () -funktionen.
Jeg kan godt lide, at Navicat Query Editor kan vise mig og endda indsætte den korrekte syntaks i mine forespørgsler.
Her er den komplette forespørgsel og resultater:
Du kan se, at nuladresse2-værdierne er konverteret.
Med venlig hilsen!
Adam
Svar
COALESCE
Sikker på, NVL er et kortere navn, men ved du hvad?
- Ingen forstår, hvad
NVLstår for. Det er svært at forklare for noobs. -
NVLtager kun 2 argumenter, mensCOALESCEtager et vilkårligt tal . -
COALESCEer en del af ANSI-standard SQL. Hver SQL-database understøtter den, inklusive Oracle. Kun Oracle understøtterNVL(og tilsyneladende også Informix; se kommentarer).