想想这张表:
____________
| 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
答案 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
,您可以用空字符串(或其他)替换它。