2013-07-18 56 views

Trả lời

5

Sử dụng trường hợp

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

thank you very much – user2594582

+0

@ user2594582 NP :) – zxc

+0

Can ngắn: ISNULL (VAL1, VAL2) và theo cách này nó sẽ tôn trọng đặc điểm kỹ thuật cột , do đó, chèn từ đó chọn sẽ không thất bại nguyên nhân thay thế quá lâu. –

1

Bạn muốn sử dụng các từ khóa DEFAULT.

Ví dụ lấy từ trang web

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 là một liên kết đến trang web.

+0

Cũng có khi cấu trúc của DB không thể thay đổi và giá trị mặc định chỉ cần trong một truy vấn, câu trả lời này không tốt cho các trường hợp chung. – TheBat

1

Đối với hàng hiện có (Giả sử cột là 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 

Hãy nhận biết mặc dù, rằng IsNull có độ ưu tiên của các loại đối số thứ hai. Điều này có thể gây ra việc cắt giảm giá trị mặc định không mong muốn, nếu cột trong đối số đầu tiên có loại, giá trị này ngắn hơn giá trị mặc định. Trong những trường hợp như vậy, Coalesce là lựa chọn tốt hơn.

Dưới đây là một ví dụ cho thấy sự khác biệt giữa 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; 

Thấy rằng Default cắt giảm xuống Def khi IsNull được sử dụng.

0

tôi sử dụng studio quản lý máy chủ sql để làm như vậy

Management studio screen shot

Các vấn đề liên quan