SELECT
IsNull(user_Name, 'Unknown Name') AS user_Name,
IsNull(user_pass, 'Unknown Pass') AS user_pass,
IsNull(user_hometown, 'Unknown Hometown') AS user_hometown
FROM user_baseinfo
Hãy nhận biết mặc dù, rằng IsNull
có độ ưu tiên của các loại đối số thứ hai. Điều này có thể gây ra việc cắt giảm giá trị mặc định không mong muốn, nếu cột trong đối số đầu tiên có loại, giá trị này ngắn hơn giá trị mặc định. Trong những trường hợp như vậy, Coalesce
là lựa chọn tốt hơn.
Dưới đây là một ví dụ cho thấy sự khác biệt giữa IsNull
và Coalesce
:
CREATE TABLE #Sample (Value1 varchar(100), Value2 char(3));
INSERT INTO #Sample (Value1, Value2)
VALUES
('AAA', 'AAA'),
('BBB', 'BBB'),
('CCC', 'CCC'),
(NULL, NULL);
SELECT
IsNull(Value1, 'Default') AS Value1,
IsNull(Value2, 'Default') AS Value2
FROM #Sample;
SELECT
Coalesce(Value1, 'Default') AS Value1,
Coalesce(Value2, 'Default') AS Value2
FROM #Sample;
Thấy rằng Default
cắt giảm xuống Def
khi IsNull
được sử dụng.
Nguồn
2013-07-18 08:58:08
thank you very much – user2594582
@ user2594582 NP :) – zxc
Can ngắn: ISNULL (VAL1, VAL2) và theo cách này nó sẽ tôn trọng đặc điểm kỹ thuật cột , do đó, chèn từ đó chọn sẽ không thất bại nguyên nhân thay thế quá lâu. –