如何在T-SQL中创建一个If-Then-Else条件语句

5
我从查询中得到了一些负值。我希望它们变成零。 如何在我的SQL查询中编写条件,如果值低于某个值,则返回零。
解决方案:
CASE WHEN  CONVERT(float,dt.FQI53X02_101)  <  1.3  THEN 0 ELSE CONVERT(float,dt.FQI53X02_101) END AS  FQI53X02_101
3个回答

7

在实际查询中不使用If-Then-Else(可以使用,但那是另一回事)...

你需要使用的是Case语句... 尝试这个

Select
    Case When [Value] < 0 Then 0 Else [Value] End
From 
    Example

我的修改版本是你的建议:"select dt.*,Case FQI53X02_101 When < 1.3 Then 0 Else FQI53X02_101 End as hhh from",但我发现小于号运算符出错了...不确定为什么。 - Brad
好的,我明白了。将代码翻译为中文如下:"如果 CONVERT(float,dt.FQI53X02_101) < 1.3,则 FQI53X02_101 的值为0,否则 FQI53X02_101 的值为 CONVERT(float,dt.FQI53X02_101)" - Brad

5
如果您希望将其作为查询的一部分,请在CASE语句中包装返回值。以下是来自MSDN的示例:
SELECT     'Price Category' = 

        CASE 

            WHEN price IS NULL THEN 'Not yet priced'

            WHEN price < 10 THEN 'Very Reasonable Title'

            WHEN price >= 10 and price < 20 THEN 'Coffee Table Title'

            ELSE 'Expensive book!'

        END,

    CAST(title AS varchar(20)) AS 'Shortened Title'

FROM titles

ORDER BY price

2
( ABS(Value) + Value ) / 2

编辑 - 由于问题已更改,此方法现在无法使用。


不错。+1(废话,只是为了凑够15个字符) - Burkhard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接