这是我在 SQL Server 中的 sql:
SELECT user_Name ,user_pass ,user_hometown FROM user_baseinfo
有时该列可以为空。如果是,我想用默认值替换它。
这是我在 SQL Server 中的 sql:
SELECT user_Name ,user_pass ,user_hometown FROM user_baseinfo
有时该列可以为空。如果是,我想用默认值替换它。
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
请注意,尽管它ISNULL
优先于第一个参数类型。如果第一个参数中的列具有比默认值短的类型,这可能会导致不希望的默认值切割。在这种情况下COALESCE
是更好的选择。
ISNULL
下面是一个示例,显示和之间的区别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;
看到Default
减少到Def
何时ISNULL
使用。
用例
select case
when user_Name is null then "default value"
else user_name
end
from table
您想使用DEFAULT
关键字。
示例取自网站
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)
这是该网站的链接。
对于现有行(假设列是varchar
)
ALTER TABLE TableName ADD CONSTRAINT ConstraintName DEFAULT N'Default Value' FOR ColumnName;