18

これはSQLサーバーの私のSQLです:

SELECT user_Name ,user_pass ,user_hometown FROM user_baseinfo   

場合によっては、列が null になることがあります。その場合は、デフォルト値に置き換えたいと思います。

4

4 に答える 4

25
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削減されることを確認してください。DefISNULL

于 2013-07-18T08:58:08.747 に答える
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'
)

ここにサイトへのリンクがあります。

于 2013-07-18T08:45:14.613 に答える
3

既存の行の場合 (列が であると仮定varchar)

ALTER TABLE TableName ADD CONSTRAINT ConstraintName DEFAULT N'Default Value' FOR ColumnName;
于 2013-07-18T08:47:06.000 に答える