Insert 0 nếu cột bị NULL trong SQL query

0 k thích

Mình có một query mà gía trị của ba cột đầu bị NULL, làm sao để thay nó bằng 0 trong DB

SELECT rundate, 
    sum(case when runstatus = 'Succeeded' then 1 end) as Succeeded, 
    sum(case when runstatus = 'Failed' then 1 end) as Failed, 
    sum(case when runstatus = 'Cancelled' then 1 end) as Cancelled
FROM abc
GROUP BY xyz
avatar đã hỏi ngày 24 tháng 7 bởi vovantinit (970 điểm)  
đã sửa ngày 24 tháng 7 bởi admin

2 Trả lời

0 k thích

Dùng ISNULL nhé

SELECT ISNULL(myColumn, 0 ) FROM myTable

bạn cũng có thể chèn gía trị khác nếu muốn

avatar trả lời ngày 24 tháng 7 bởi hoangthehung (1,340 điểm)  
0 k thích

bạn có thể dùng một trong hai cách sau nhưng có sự khác nhau :

SELECT ISNULL(col1, 0 ) FROM table1
SELECT COALESCE(col1, 0 ) FROM table1
  1. ISNULL và COALESCE có mục đích giong nhau nhưng hoạt đông lại khác nhau
  2. ISNULL là một function nên nó chỉ chạy có một lần trong khi COALESCE có thể chạy nhiều lần
  3. Data truyền vào trong ISNULL phải giong như ở tham số đầu trong khi ở COALESCE nếu sử dụng CASE thì nó lấy data type nào có độ ưu tiên cao nhất
avatar trả lời ngày 24 tháng 7 bởi admin (2,590 điểm)  
...