Коли в стовпчику групування міститься значення NULL, виникають додаткові ускладнення: якщо значення стовпчика невідоме, то до якої групи його потрібно віднести?
В секції WHERE при порівнянні двох значень NULL результат має значення NULL (а не TRUE) тобто два значення NULL не вважається однаковими! Якщо таке правило застосовувати в секції GROUP BY, то це приведе до того, що кожний рядок із значенням NULL в стовпчику групування буде занесений в окрему групу, яка складається із одного цього рядка.
На практиці – це дуже незручно. Тому в стандарті SQL визначається, що два значення NULL в секції GROUP BY – співпадають! Тобто, якщо два рядка мають значення NULL в однакових стовпчиках групування та ідентичні значення у всіх інших стовпчиках групування, то вони заносяться в одну групу.
Хоча такий принцип опрацювання значень NULL визначений в стандарті SQL, він реалізований не для всіх діалектів SQL - потрібно перевірити комерційну СУБД.
Нехай
| People
|
| Name
| Hair
| Eyes
|
| Cindy
Louise
Harry
Samantha
Joanne
George
Mary
Paula
Kevin
Joel
Susan
Marie
| Brown
NULL
NULL
NULL
NULL
Brown
Brown
Brown
Brown
Brown
Blonde
Blonde
| Blue
Blue
Blue
NULL
NULL
NULL
NULL
NULL
NULL
Brown
Blue
Blue
|
(при виконанні таких прикладів на ЕОМ значення NULL – не вводяться, - треба замість них залишати порожні клітинки!)
23). SELECT Hair, Eyes, COUNT (*)