SQL Server, как установить значение по умолчанию, когда столбец равен нулю

Это мой sql на сервере SQL:

SELECT user_Name ,user_pass ,user_hometown FROM user_baseinfo   

Иногда столбец может быть нулевым. Когда это так, я хочу заменить его значением по умолчанию.

Ответ 1

Случай использования

select case 
          when user_Name is null then "default value" 
          else user_name 
       end  
from table

Ответ 2

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.

Ответ 3

Вы хотите использовать ключевое слово 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'
)

Здесь - ссылка на сайт.

Ответ 4

Для существующих строк (предположим, что столбец varchar)

ALTER TABLE TableName ADD CONSTRAINT ConstraintName DEFAULT N'Default Value' FOR ColumnName;

Ответ 5

Я использую студию управления сервером sql для выполнения того же

Снимок экрана студии управления