2013-07-18 4 views

Antwort

5

Use Case

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

vielen Dank – user2594582

+0

@ user2594582 NP zu tun :) – zxc

+0

kürzer: isnull (val1, val2) und auf diese Weise wird es Spaltenangabe respektieren , so einfügen von dieser Auswahl wird nicht wegen zu langer Ersatz fehlschlagen. –

1

Sie die DEFAULT Schlüsselwort verwenden möchten.

Beispiel von der Website genommen

CREATE TABLE Persons 
(
    P_Id int NOT NULL, 
    LastName varchar(255) NOT NULL, 
    FirstName varchar(255), 
    Address varchar(255), 
    City varchar(255) DEFAULT 'Sandnes' 
) 

Here ist ein Link auf die Website.

+0

Es gibt auch Zeiten, in denen die Struktur des DB nicht geändert werden kann, und der Standardwert nur in einer Abfrage benötigt wird, diese Antwort ist nicht gut für allgemeine Fälle. – TheBat

1

Für bestehende Zeilen (Spalte Unter der Annahme varchar)

ALTER TABLE TableName ADD CONSTRAINT ConstraintName DEFAULT N'Default Value' FOR ColumnName; 
10
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 

sich aber bewusst sein, dass IsNull Vorrang des zweiten Arguments Typ hat. Dies kann zu einem unerwünschten Abschneiden des Standardwerts führen, wenn die Spalte im ersten Argument einen Typ hat, der kürzer ist als der Standardwert. In solchen Fällen ist Coalesce die bessere Wahl.

Unten ist ein Beispiel zeigt den Unterschied zwischen IsNull und 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; 

Sehen Sie, dass Default Senkungen bis auf Def wenn IsNull verwendet wird.

0

Ich benutze SQL Studio Server-Management die gleiche

Management studio screen shot

Verwandte Themen