当这些字段不存在时,是否可以使Sql Server返回空字段而不是空字段?

时间:2014-02-10 17:22:31

标签: sql sql-server

想想这张表:

 ____________
| ID | Value |
|  1 |  One  |
|  3 | Three |

如果我运行像SELECT Value FROM myTable WHERE ID = 1这样的查询,我肯定会获得适当的值,在这种情况下是One,但如果我将ID更改为任何其他数字当然,我不会在Value列上得到任何内容,因为那里没有任何数据。

但有没有办法让Sql Server在进行此类查询时至少返回一个空白区域?

Sql小提琴相同的案例:http://sqlfiddle.com/#!3/f30f8/2

2 个答案:

答案 0 :(得分:2)

select  Value
from    YourTable
where   ID = 1
union all
select  null
where   not exists
        (
        select  *
        from    YourTable
        where   ID = 1
        )

所以是的,这在技术上是可行的,但你可以看到为什么用通用语言更容易解决这个问题。

答案 1 :(得分:1)

是。你可以这样做:

select coalesce(max(value), '')
from test t
where id = 1;

这个想法是max()总是返回一个值。如果没有匹配,它将为NULL,您可以用空字符串(或其他)替换它。