2013-07-18 49 views

回答

5

使用情况

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

非常感谢你 – user2594582

+0

@ user2594582 NP :) – zxc

+0

能短:ISNULL(VAL1,VAL2),并通过这种方式,将尊重列规范,因此从该选择插入将不会导致替换时间过长。 –

1

您要使用的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' 
) 

Here采取

实例是该网站的链接。

+0

有些时候数据库的结构不能改变,并且默认值只在一个查询中需要,这个回答对于一般情况是不好的。 – TheBat

1

对于现有的行(假设列是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 

注意虽然,IsNull具有第二参数类型的优先级。如果第一个参数中的列的类型比默认值的类型短,那么这可能会导致不希望的切割缺省值。在这种情况下Coalesce是更好的选择。

下面是表示IsNullCoalesce和之间的差异的例子:

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

0

我使用SQL Server Management Studio中做同样的

Management studio screen shot

相关问题