Showing posts with label Coalesce. Show all posts
Showing posts with label Coalesce. Show all posts

Friday, March 13, 2020

SQL Server, ข้อแตกต่างระหว่าง COALESCE() กับ ISNULL(), เปรียบเทียบ COALESCE() กับ CASE()

COALESCE คือคำสั่งที่ใช้ในการแปลงค่าจาก NULL เป็น ค่าที่ต้องการ

Syntax : COALESCE(expression1,expression2,…n,VALUE)
** VALUE คือค่าที่ต้องการเปลี่ยนเมื่อ expression เป็น NULL เช่น ต้องการให้แปลง NULL เป็น 10 ก็ใส่ VALUE เป็น 10 **

ตัวอย่างที่ 1
COALESCE(NULL,NULL,’show value’) => ผล : show value
COALESCE(1,2,’show value’) => ผล : 1
COALESCE(1,NULL,’show value’) => ผล : 1
COALESCE(NULL,2,’show value’) => ผล : 2

Syntax : ISNULL ( check_expression , replacement_value )

ตัวอย่างที่ 2
where isnull(name,”) <> ”
มีค่าเท่ากับ  where name is not null and name <> ”
มีค่าเท่ากับ  where name <> ”

ตัวอย่างที่ 3
SELECT ISNULL(Weight, 0) FROM tb_DimProduct

ข้อแตกต่างระหว่าง COALESCE() กับ NULL()
1. เมื่อเจอค่า NULL : ISNULL จะแปลงค่าเป็น int แต่ COALESCE เราจะต้องกำหนด data type
2. ISNULL สามารถใช้ได้กับแค่ 2 parameters เท่านั้น ในขณะที่ COALESCE สามารถระบุ parameters ได้มากกว่า 2

เปรียบเทียบ COALESCE() กับ CASE()
— CASE expression:
CASE
WHEN (expression1 IS NOT NULL) THEN expression1
WHEN (expression2 IS NOT NULL) THEN expression2
ELSE expressionN
— COALESCE expression:
SELECT COALESCE(expression1,expression2,expressionN)