Một người bạn mới bắt đầu học SQL đã hỏi tôi về các giá trị NULL và cách xử lý chúng. Nếu bạn chưa quen với SQL, hướng dẫn này sẽ cung cấp cho bạn thông tin chi tiết về một chủ đề có thể gây nhầm lẫn…
Bạn đang xem: sql coi null là 0
Cách xử lý các giá trị NULL trong SQL đúng cách
Mẹo và thủ thuật để xử lý giá trị NULL trong T-SQL
Ảnh bởi Jeremy Perkins trên Hủy kết nối
Lời nói đầu
Một người bạn mới bắt đầu học SQL đã hỏi tôi về giá trị NULL và cách xử lý với họ. Nếu bạn chưa quen với SQL, hướng dẫn này sẽ cung cấp cho bạn thông tin chi tiết về một chủ đề có thể gây nhầm lẫn cho người mới bắt đầu.
NULL là gì?
NULL được sử dụng trong SQL để chỉ ra rằng một giá trị không tồn tại trong cơ sở dữ liệu.
Nó không bị nhầm lẫn với một chuỗi trống hoặc giá trị bằng không.
Trong khi NULL chỉ ra sự vắng mặt của một giá trị, thì chuỗi rỗng và không đều đại diện cho các giá trị thực tế. Để sử dụng phép loại suy, vì thiếu câu trả lời không nhất thiết có nghĩa là câu trả lời là “không”, thiếu giá trị không có nghĩa là nó bằng không.
Hiểu sai cách NULL hoạt động trong SQL có thể dẫn đến lỗi không mong muốn và đầu ra, do đó, không cần thêm quảng cáo, hãy xem chúng ta có thể giải quyết nó như thế nào.
Đối với bài tập này, chúng ta sẽ làm việc với bảng tblSouthPark
.
< pre class = "kv kw kx ky gt nh bt ni">
CHỌN strong > *
FROM tblSouthPark
1. Toán tử LÀ KHÔNG ĐỦ và KHÔNG ĐỦ
Chúng tôi không thể sử dụng toán tử so sánh, =, & lt;, & gt;, & lt; & gt;
, để kiểm tra giá trị NULL . Thay vào đó, chúng ta phải sử dụng LÀ KHÔNG ĐẦY ĐỦ
và KHÔNG ĐỦ vị từ .
-
LÀ KHÔNG ĐẦY ĐỦ
: Trả về các hàng chứa Giá trị NULL
Cú pháp: biểu thức LÀ KHÔNG ĐỦ
CHỌN
ID,
Sinh viên,
Email1,
Email2
FROM tblSouthPark
WHERE Email1 < strong class = "ng jg"> LÀ KHÔNG ĐỦ VÀ Email 2 KHÔNG ĐỦ
ĐƠN HÀNG THEO ID
Truy vấn trên tạo ra tất cả các bản ghi trong đó cả cột Email1 và Email2 đều là KHÔNG.
- KHÔNG ĐỦ: Như tên cho thấy, nó là nghịch đảo của IS NULL.
Cú pháp: biểu thức KHÔNG ĐẦY ĐỦ
blockquote>
CHỌN
ID,
Sinh viên,
Email1,
Email2
FROM tblSouthPark
TRONG ĐÓ Email1 KHÔNG ĐỦ VÀ Email2 KHÔNG ĐẦY ĐỦ
ĐẶT HÀNG THEO IDTruy vấn trên tạo ra tất cả các bản ghi trong đó cả cột Email1 và Email2 KHÔNG ĐẦY ĐỦ.
p >
2. Hàm ISNULL ()
Hàm
ISNULL
trả về giá trị được chỉ định nếu biểu thức đã cho là NULL. Ngược lại, nếu biểu thức không phải là NULL, nó sẽ trả về chính biểu thức đó.Cú pháp: ISNULL (biểu thức, giá trị)
Hãy hiểu điều này bằng cách chạy một truy vấn đơn giản trên
SouthPark bảng. SELECT
ID,
Student,
ISNULL (Father, 'Missing') AS Father
FROM tblSouthPark
< strong class = "ng jg"> ĐẶT HÀNG THEO IDTruy vấn này cho kết quả sau:
Vì biểu thức trong trường hợp Eric Cartman được đánh giá là NULL nên
Hàm ISNULL
trả về giá trị,Thiếu
. Đối với các sinh viên khác, biểu thức không phải là NULL nên nó trả về chính biểu thức đó.3. Hàm COALESCE ()
Hàm
COALESCE
trả về giá trị không phải NULL đầu tiên trong một danh sách nhất định. Không giống như hàmISNULL
, hàm này có thể chấp nhận nhiều biểu thức.Cú pháp: COALESCE (biểu thức [1… ..n])
Ví dụ:
SELECT COALESCE (NULL, NULL, 'red', 'blue', NULL)
trả vềred
vì đó là giá trị không phải NULL đầu tiên. Nếu tất cả các giá trị đều là NULL, hàmCOALESCE
sẽ trả về NULL.Hãy để chúng tôi sử dụng
COALESCE Hàm
trên bảngSouthPark
của chúng tôi:CHỌN
ID,
Sinh viên,
< strong class = "ng jg"> COALESCE (Email1, Email2, 'N / A') AS Primary_Email
FROM tblSouthPark
ĐẶT HÀNG THEO IDTruy vấn trên cho kết quả sau:
Như mong đợi, vì cả Email1 và Email2 đều là rỗng trong trường hợp của Kenny, nên hàm
COALESCE
trả vềN / A code> as the
Primary_Email
. Đối với Stan, Email2 được trả về dưới dạngPrimary_Email
vì nó là giá trị không phải NULL đầu tiên trongHàm COALESCE
. Đối với những người khác, Email1 được trả về dưới dạngPrimary_Email
.
4. CASE Expression
Chúng tôi cũng có thể sử dụng biểu thức
CASE
cũ tốt để thay thế các giá trị NULL.Đây là cú pháp chung cho
CASE
biểu thức:TRƯỜNG HỢP
KHI NÀO biểu thức_1 THÌ strong > result_1
WHEN expression_2 THEN result_2
.
.
.
WHEN expression_n THEN result_n
ELSE < / strong> else_expression
HẾTChúng ta có thể tạo ra cùng một kết quả mà chúng ta đã nhận bằng cách sử dụng
COALESCE
ở trên bởi usingCASE
.Truy vấn sẽ như sau:
CHỌN
ID,
Sinh viên,
TRƯỜNG HỢP
KHI Email1 KHÔNG ĐỦ THÌ Email1
KHI Email2 KHÔNG ĐẦY ĐỦ THÌ Email2
ELSE 'Không / A'
KẾT THÚC NHƯ Primary_Email
FROM tblSouthPark
ĐẶT HÀNG BẰNG IDTruy vấn này cho cùng một kết quả:
Lưu ý: Biểu thức
CASE
là về mặt cú pháp tương tự như hàmCOALESCE
. Trên thực tế,COALESCE
giống như cách viết tắt củaCASE
. Câu trước ngắn gọn và đơn giản nhưng phần sau rõ ràng và dễ hiểu hơn.
p>
5. Hàm NULLIF ()
Hàm
NULLIF
nhận hai biểu thức và trả về NULL nếu các biểu thức bằng nhau hoặc biểu thức đầu tiên khác.Cú pháp: NULLIF (biểu thức 1, biểu thức 2)
NULLIF ('Red', 'Orange') - Trả về màu đỏ
NULLIF strong> (0, NULL) - Trả về 0
NULLIF (0,0) - Trả về NULLTrong đó
NULLIF
rất hữu ích trong trường hợp dữ liệu chứa hỗn hợp các chuỗi rỗng và rỗng trong một cột. Hãy hiểu điều này bằng một ví dụ.Chúng tôi thấy rằng cột
Điện thoại
trong bảng của chúng tôi chứa cả chuỗi NULL và rỗng.Chúng ta có thể chuẩn hóa điều này bằng cách thay đổi khoảng trống chuỗi thành NULL bằng cách sử dụng
NULLIF
:SELECT
ID,
Student,
NULLIF (Điện thoại, '') AS Điện thoại
FROM tblSouthPark < br /> ĐẶT HÀNG THEO IDTruy vấn trên cho kết quả:
Một trường hợp sử dụng tốt khác cho
NULLIF
là để ngăn lỗi "chia cho không":var1 = 1
var2 = 0var1 / var2 - Điều này sẽ tạo ra lỗi "chia cho không"
var1 / NULLIF (var2,0) - Điều này không gây ra lỗi" chia cho không "
Trong trường hợp thứ hai, chúng tôi không nhận được lỗi" chia cho không "vì NULL được trả về ở mẫu số thay cho 0.
Mẹo thưởng
< ul class = "">
COALESCE
là ANSI tiêu chuẩn, trong khiISNULL
vàNULLIF code > không. Điều này làm cho
COALESCE
trở nên tổng quát và di động hơn (trên các phiên bản SQL và RDBMS khác nhau) so vớiISNULL code > và
NULLIF
.NULL là giá trị nhỏ nhất trong thứ tự sắp xếp. Nếu chúng ta sắp xếp theo một cột có chứa giá trị NULL, thì các hàng có giá trị NULL sẽ sắp xếp ở trên cùng theo mặc định. Sử dụng thứ tự sắp xếp DESC
để sắp xếp ngược lại.Mẹo: Để sắp xếp theo thứ tự bảng chữ cái (ASC) với giá trị NULL tại cuối cùng, bạn có thể sử dụng biểu thức CASE trong mệnh đề ORDER BY:
ĐẶT HÀNG THEO
TRƯỜNG HỢP KHI column_name LÀ KHÔNG ĐỦ THÌ 1 ELSE 0 HẾT,
column_name; p >
- Các hàm tổng hợp trong SQL (
SUM
,COUNT
,AVG
,MAX
,MIN
) không xử lý các giá trị NULL và loại bỏ chúng trước khi thực hiện bất kỳ phép tính nào. Ngoại lệ duy nhất cho điều này là hàmCOUNT (*)
- nó trả về tổng số của tất cả các hàng, bao gồm cả những hàng mà tất cả các trường đều là NULL. Li >- Trong trường hợp
Mệnh đề GROUP BY
, nếu một cột chứa các hàng có giá trị NULL thì các hàng đó sẽ được nhóm lại thành một nhóm.- Bạn có thể xâu chuỗi
COALESCE
vàNULLIF
hàm trong trường hợp cột chứa cả chuỗi NULL và chuỗi rỗng và bạn cần tạo một cột tổng hợp. Ví dụ:BẢNG ĐẦU VÀO: Mẫu
+ ========================== =========== +
| Làm việc | Ô |
+ ============== + ============== +
| | 717-735-6382 |
+ -------------- + -------------- +
| 546-373-9363 | 493-353-3638 |
+ -------------- + -------------- +
| NULL | 657-428-3639 |
+ -------------- + -------------- +QUERY
CHỌN COALESCE ( NULLIF (Work, ''), Cell) AS Primary FROM MẫuOUTPUT
+ ==== ========== +
| Chính |
+ ============== +
| 717-735-6382 |
+ -------------- +
| 546-373-9363 |
+ -------------- +
| 657-428-3639 |
+ -------------- +Chúng ta cũng có thể sử dụng biểu thức CASE nhanh và bẩn để làm tương tự:
TRƯỜNG HỢP KHI NÀO Làm việc & lt; & gt; '' THÌ Làm việc ELSE Ô HẾT
p >
Kết thúc
Bây giờ bạn sẽ có tất cả những gì bạn cần để xử lý thành công các giá trị NULL trong SQL. Tất nhiên, chúng tôi không đề cập đến từng trường hợp cạnh ở đây, nhưng đây phải là một điểm khởi đầu tốt cho người mới bắt đầu. Nếu bạn gặp khó khăn, Stack Overflow là bạn của bạn. Như mọi khi, luyện tập là chìa khóa!
Xem thêm những thông tin liên quan đến chủ đề sql coi null là 0
Update column contains null values with 0 in SQL server
- Tác giả: Programming for Everybody
- Ngày đăng: 2021-10-17
- Đánh giá: 4 ⭐ ( 1666 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Update column contains null values with 0 in SQL server
Videos
How to create database and Table,Insert,Update,Delete in SQL Server step by step
https://youtu.be/tD_HKFDw8-E
How to update a column with sequence number in sql server
https://youtu.be/d-gWnQWTzVw
Fix Error SQL server Value cannot be null Parameter name viewInfo
https://youtu.be/h5QnagtpLXs
How to Convert SQL Server to MS Access(Northwind)
https://youtu.be/Ir2YUXQJjUI
Find Duplicates From a Table in SQL Server
https://www.youtube.com/watch?v=gNLeahJpDoo&t=9s
Insert,Update and Delete Statements in SQL Server
https://www.youtube.com/watch?v=W56NBfjBlfc&t=82s
Display Edit All Rows and select all rows in SQL Server
https://www.youtube.com/watch?v=X7VeyFy55IE
Back Up and Restore of SQL Server Databases
https://www.youtube.com/watch?v=0HAtNA21RwQ&t=35s
How to Create Auto Incremented Identity Column in SQL Server
https://www.youtube.com/watch?v=gD0LBgGygwg&t=5s
Import data from Excel to SQL Server database
https://www.youtube.com/watch?v=iI6TdhbCs4U&t=20s
Run an SQL script file - SQL Server
https://www.youtube.com/watch?v=hk8SMxm3h6Y&t=3s
How to Generate Script with data in SQL Server 2008
https://www.youtube.com/watch?v=vZM7KPosg9A&t=12s
How to attach database mdf file in sql server and fix an error occurred when attaching the database
https://www.youtube.com/watch?v=0-_0JV96zuE&t=24s
How to delete or reset stored FTP site passwords for Windows 10
https://www.youtube.com/watch?v=Y1YG-6GtBfw
برنامج لمعرفة اسم السرفر وعمل نسح احتياطية backup لقواعد بيانات Sql server وكيفية استعادتها VB.net
https://www.youtube.com/watch?v=jXBGJxbMSbA&t=90s
شرح تحويل قاعدة بيانات اكسيس إلى SQL والربط بينهما - Convert access to SQl Server
https://www.youtube.com/watch?v=IuC3IifpyQs&t=23s
Setup SQl Server 2008
https://www.youtube.com/watch?v=ri9vemvOcQ8&t=98s
كيفية تحويل قاعدة بيانات Access إلى SQL Server بدون برامج مع الربط بينهما مع وجود مفاجأة بالفيديو
https://www.youtube.com/watch?v=GD1Q0WcENM0
Connect Visual Basic.net with SQL Server by user and password(Local network)
https://www.youtube.com/watch?v=Pa_MpM0x6BM&t=35s
SQL Error: A network-related or instance-specific error
https://youtu.be/romx5DmeTq8
programming_for_everybody
Tags:
How do you update a column with null value in SQL Server?
How do you replace null values in SQL with 0?
Can null value be replaced with zero?
How do you handle null values in SQL Server?
Replace NULL with 0 in SQL
How to use ISNULL in SQL Server
Sql set value to null
NULL value in SQL
UPDATE NULL value in SQL
SQL server if is NULL
SQL is NULL
programming_for_everybody
programming_for_everybody_sql
sqlservertutorial sqlserver microsoftsqlserver sqlservertutorialforbeginners sqltraining
Giá trị NULL trong SQL
- Tác giả: vietjack.com
- Đánh giá: 3 ⭐ ( 8895 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Giá trị NULL trong SQL - Học SQL cơ bản nâng cao. Học SQL trực tuyến theo các bước từ Khái niệm về database, Cú pháp SQL, Truy vấn SELECT, Truy vấn INSERT, Lệnh DELETE, Truy vấn UPDATE, Ràng buộc (Constraint), Truy vấn DROP, Lệnh TRUNCATE, Từ khóa DISTINCT, Mệnh đề ORDER BY, Mệnh đề GROUP BY, Mệnh đề WHERE, Sử dụng Join, Sử dụng View, Sử dụng Sequence, Transaction, Hàm xử lý, Bảng tạm, Toán tử.
NULL trong SQL Server
- Tác giả: comdy.vn
- Đánh giá: 5 ⭐ ( 4633 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Tìm hiểu về NULL, logic ba giá trị, cách sử dụng toán tử IS NULL và IS NOT NULL trong SQL Server.
NULL trong Microsoft SQL Server
- Tác giả: viblo.asia
- Đánh giá: 4 ⭐ ( 2326 lượt đánh giá )
- Khớp với kết quả tìm kiếm: 1. NULL là một giá trị đặc biệt có mặt trong tất cả các loại dữ liệu, từ kiểu số, ngày, chuỗi, đến bit… Nó đại diện cho giá trị “không biết”, hoặc “không tồn tại”. NULL không trùng với số 0 của kiểu...
SQL SERVER: QUOTED_IDENTIFIER ON / OFF và ANSI_NULL ON / OFF là gì
- Tác giả: www.thachphong.com
- Đánh giá: 5 ⭐ ( 2533 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Giá trị NULL trong SQL
- Tác giả: quantrimang.com
- Đánh giá: 3 ⭐ ( 6021 lượt đánh giá )
- Khớp với kết quả tìm kiếm: NULL trong SQL là thuật ngữ được sử dụng để biểu diễn một giá trị bị khuyết thiếu.
Giá trị NULL trong SQL, ISNULL trong SQL
- Tác giả: hoclaptrinh.vn
- Đánh giá: 5 ⭐ ( 9061 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Giá trị NULL trong SQL là khái niệm được sử dụng để biểu diễn một giá trị bị khuyết thiếu. Một giá trị NULL trong một bảng là một giá trị trong một trường và bị bỏ trống.
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình