有条件地获取价值

时间:2013-12-04 20:56:00

标签: sql sql-server

我的查询返回值如下

ID      Hvalue
0       34
SGL210      91

如果结果集ID为0且非零值,则需要重试 只有非零Hvalue。如果结果集只有ID值为0那么 我已经反驳说Hvalue可以帮助我。

2 个答案:

答案 0 :(得分:1)

在不知道如何查询表的上下文的情况下,我会使用以下SQL代码段来完成

IF EXISTS (SELECT * FROM MyTable WHERE ID <> 0) 
BEGIN
    SELECT HVALUE FROM MyTable WHERE ID <> 0
END
ELSE
BEGIN
    SELECT HVALUE FROM MyTable WHERE ID = 0
END

HTH

答案 1 :(得分:1)

从查询中获取第一个值 - 按ID降序排序后: -

select top 1 hvalue
from ...
... your query
...
order by ID desc

更强大的方法(在Vikdor评论之后)将是: -

select top 1 hvalue
from ...
... your query
...
order by case id when '0' then 0 else 1 end desc