这是我在SQL server中的sql:
SELECT user_Name ,user_pass ,user_hometown FROM user_baseinfo
Run Code Online (Sandbox Code Playgroud)
有时列可以为null.如果是,我想用默认值替换它.
i-o*_*one 17
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
Run Code Online (Sandbox Code Playgroud)
但请注意,它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;
Run Code Online (Sandbox Code Playgroud)
请参阅Default减少了到Def时IsNull被使用.
zxc*_*zxc 12
用例
select case
when user_Name is null then "default value"
else user_name
end
from table
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42613 次 |
| 最近记录: |