Keresési feltételek a nullhoz képest
Az NULL érték azt jelenti, hogy az oszlop értéke ismeretlen vagy érvénytelen. A NULL nem egy numerikus vagy bináris nulla, nulla hosszúságú karakterlánc vagy üres karakter. A NULL értékek a nulla (numerikus oszlopok) vagy az üres (a karakter oszlopok) rekordok hiányának megkülönböztetésére szolgálnak (NULL mind a numerikus, mind a karakter oszlop esetében).
NULL értéket adhat meg olyan oszlopban, amelyhez NULL értékek engedélyezettek (a CREATE TABLE utasításban megadottak szerint) két módon.
SQL Server automatikusan belép az érték NULL, ha az oszlop nem az adatokat, és ha tesz nincs alapértelmezett vagy az alapértelmezett megszorítások az oszlop (vagy adat típus).
A felhasználó kifejezetten megadhatja a NULL értéket a NULL szó bevitelével, idézőjelek nélkül. NULL, ha a szó szerepel a karakter oszlop idézetek kezelik betű- N, U, L és L, és nem a NULL értéket.
Amikor a NULL értékek érkeznek, az alkalmazás általában a NULL, (NULL) vagy (null) űrlapot mutatja a megfelelő pozícióban. Például a Terméktábla oszlopának oszlopában NULL értékek engedélyezettek:
A NULL értékek összehasonlításakor ügyelni kell. A környezet viselkedése ebben az összehasonlításban a SET ANSI_NULLS paraméter értékétől függ.
Ha a SET ANSI_NULLS értéke be van kapcsolva, akkor egy NULL-val egy vagy több kifejezéssel történő összehasonlítás nem eredményez TRUE vagy FALSE eredményt, de UNKNOWN értéket ad. Ez azért van, mert egy ismeretlen értéket logikusan nem lehet összehasonlítani más értékekkel. Ez két esetben fordul elő: vagy amikor a kifejezést a NULL literálhoz hasonlítjuk, vagy ha két kifejezést hasonlítunk össze, amelyek közül az egyik NULL. Például a következő összehasonlítás eredménye mindig ismeretlen az ANSI_NULLS paraméterkészlet ON-ra:
Az alábbi összehasonlításban az NEMTELENES eredmény is megjelenik, amikor a változó NULL értéket tartalmaz:
A Transact-SQL olyan kiterjesztést támogat, amely lehetővé teszi az összehasonlító operátorok számára a TRUE vagy FALSE értékek visszatérését a NULL értékekhez képest. Ez a funkció aktiválódik, ha ANSI_NULLS OFF van beállítva. Ha az ANSI_NULLS érték ki van kapcsolva, az ColumnA = NULL típusú összehasonlítások TRUE értéket adnak vissza, ha az oszlopA oszlop NULL-ot, FALSE-t tartalmaz, ha az oszlopA oszlop NULL-tól eltérő értéket tartalmaz. Ezenkívül a NULL értéket eredményező két kifejezés összehasonlítása TRUE lesz. Az ANSI_NULLS beállítás nem érinti a csatolt oszlopokat, amelyek NULL értékeket tartalmaznak. Az egyesített oszlopok sorai, amelyek NULL értékeket tartalmaznak, nem képezik részét az eredményhalmaznak. Ha az ANSI_NULLS érték ki van kapcsolva, akkor a következő SELECT utasítás adja vissza az Ügyfél tábla összes sorát. amelyben a Régió oszlopban szerepel a NULL értéke:
Az ANSI_NULLS paraméter értékétől függetlenül a NULL értékek mindig azonosak a kulcsszó ORDER BY, GROUP BY és DISTINCT kulcsszavakkal. Ezenkívül egy egyedi index vagy UNIQUE korlátozás, amelyhez NULL érték megengedett, csak egy sort tartalmazhat NULL kulcsértékkel. A következő sorok NULL értékkel kerülnek elutasításra. Elsődleges kulcs esetén a kulcshoz tartozó oszlopok közül egyik sem lehet NULL.
A számítások eredményei, amelyekben a NULL érték szerepel, a NULL érték, mivel ha legalább egy tényező ismeretlen, akkor az eredménynek ismeretlennek is kell lennie (UNKNOWN). Például az 1 + 1 kifejezés oszlopának eredménye NULL, ha az 1. oszlop értéke NULL.
Amikor oszlopokat keres, beleértve a NULL értékekkel rendelkező oszlopokat, az NULL értékeket az adatbázisban találhatja meg, vagy azoktól eltérő módon a következő sablon használatával: