Это мой sql на сервере SQL:
SELECT user_Name ,user_pass ,user_hometown FROM user_baseinfo
Иногда столбец может быть нулевым. Когда это так, я хочу заменить его значением по умолчанию.
Это мой sql на сервере SQL:
SELECT user_Name ,user_pass ,user_hometown FROM user_baseinfo
Иногда столбец может быть нулевым. Когда это так, я хочу заменить его значением по умолчанию.
Случай использования
select case
when user_Name is null then "default value"
else user_name
end
from table
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
.
Вы хотите использовать ключевое слово 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;
Я использую студию управления сервером sql для выполнения того же