#AskMe

មូលដ្ឋានគ្រឹះនៃការប្រើប្រាស់ NULL នៅក្នុង Microsoft SQL Server

មាតិកា

I.   សេចក្តីផ្តើម

II. ការប្រើប្រាស់ COALESCE()

III. ការប្រើប្រាស់ ANSI NULLS

IV. ការប្រើប្រាស់ ISNULL()

V.  ការប្រើប្រាស់ Is null និង Is not null

VI. ការប្រើប្រាស់ NULL comparison

I.          សេចក្តីផ្តើម

នៅក្នុង SQL Server, NULL តំណាងអោយ data ដែល missing ឬក៏ unknown។ មានន័យថា NULL មិនមែនជា value ពិតប្រាកដឡើយ។ វាត្រូវបានគេកំណត់ថាជា placeholder សម្រាប់អោយ value។ នេះក៏ជាហេតុផលដែលយើងមិនអាចប្រៀបធៀប NULL ជាមួយនឹង value ផ្សេងទៀត ហើយក៏មិនមែនជាមួយនឹង NULL ផ្សេងទៀតដែរ។

II.         ការប្រើប្រាស់ COALESCE()

COALESCE() ត្រូវបានប្រើជាមួយនឹង arguments តាមលំដាប់ ហើយ return មកវិញនូវ current value នៃ first expression ដែលយើងបានធ្វើការ initial មិនមែនជា NULL ឡើយ។

ទោះបីជា function ISNULL() មានលក្ខណៈស្រដៀងទៅនឹង function COALESCE() ដែលទទួលយកតែ parameters ចំនួន២ប៉ុណ្ណោះ។ Parameter មួយសម្រាប់ check ហើយ parameter មួយទៀតប្រើប្រាស់ ប្រសិនបើ parameter ទីមួយគឺ NULL។

III.          ការប្រើប្រាស់ ANSI NULLS

ANSI NULLS ត្រូវបាន set ទៅ off ដើម្បីអនុញ្ញាតអោយមាន a =/<> comparison នៃ null values។

ឧបមាថាយើងមានទិន្នន័យដូចខាងក្រោម៖

ជាមួយនឹងការប្រើប្រាស់  ANSI NULLS ដែល set ទៅ on, យើងទទួលបាន Query:

នៅពេលដែលធ្វើការ execute យើងនឹងទទួលបាន no result។ ប្រសិនបើយើង set ANSI NULL ទៅជា off វិញ យើងនឹងទទួលបាន

ពេលនោះវានឹង return id 0

IV.          ការប្រើប្រាស់ ISNULL()

ISNULL() function មាន parameters ចំនួន២ វានឹង return value មកវិញប្រសិនបើតម្លៃនៅ parameter ទីមួយគឺ null។

Parameters:

IsNull() function គឺ return នូវប្រភេទទិន្នន័យដូចគ្នាទៅនឹង check expression

V.          ការប្រើប្រាស់ Is null និង Is not null

NULL មិនមែនជា value ឡើយ យើងមិនអាចប្រើប្រាស់ operator ជាមួយនឹង nullបានទេ។ ដើម្បីពិនិត្យថាតើ column ឬក៏ variable មានតម្លៃ null ឬក៏អត់ យើងអាចប្រើប្រាស់ is null

DECLARE @Date date = ‘2020-02-25’  

Statement ខាងក្រោមនឹងធ្វើការជ្រើសរើសយក value ចំនួន 6 ដែលគ្រប់រាល់ comparisons ជាមួយនឹង null values ត្រូវបានដាក់អោយទៅជា false ឬក៏ unknown

ធ្វើការ set តម្លៃនៃ @Date variable ទៅជា NULL ពេលនោះ statement ខាងក្រោមនឹង return នូវតម្លៃលេខ 5

IV.          ការប្រើប្រាស់ NULL comparison

NULL គឺជា special case នៅពេលដែលគេយកវាមកធ្វើការ comparison។ ឧបមាថាយើងមានទិន្នន័យដូចខាងក្រោម៖

ជាមួយនឹង Query

វានឹង return id 1

វានឹង return id 2

វានឹង return id 0

វានឹង return ids 1 និង 2 ប្រសិនបើយើងចង់បាន NULLs អោយក្លាយទៅជា “counted” ដូចទៅនឹង values នៅក្នុងសញ្ញា =, <> comparison វាត្រូវតែ Convert ទៅជាប្រភេទទិន្នន័យដែលអាចរាប់បាន

ឬក៏