首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL IF语句?

SQL IF语句?
EN

Stack Overflow用户
提问于 2015-07-03 15:58:30
回答 3查看 74关注 0票数 0

我正在处理一个查询,部分查询必须根据事务发生的时间返回值。

表的一个更简单的版本如下

代码语言:javascript
复制
TransDate | TransAmt    
--------------------
6/1/2012  | 10
7/5/2012  | 15
6/1/2013  | 15
7/1/2013  | 15

限制是在(TransDate) 6/30/2012之前发生的任何事务都将返回完整的TransAmt。如果事务发生在6/30/2012之后,则必须将TransAmt的值返回为0。

我相信我需要使用CAST功能以及CASE功能,但我对这两种功能都没有经验。如有任何帮助或指导,将不胜感激。

我也在使用Server 2008。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-03 16:01:59

您可以使用case

代码语言:javascript
复制
select (case when TransDate < '2012-06-30' then TransAmt else 0 end)
. . .

我强烈鼓励您使用ISO标准日期格式(YYYY)。

票数 4
EN

Stack Overflow用户

发布于 2015-07-03 16:00:56

您可以尝试使用case

代码语言:javascript
复制
select case when TransDate < '6/30/2012' then TransAmt else 0 end
from tbl 

SQLFiddle

票数 3
EN

Stack Overflow用户

发布于 2015-07-03 16:03:36

以下是CASE语句的样子:

代码语言:javascript
复制
SELECT
    (CASE WHEN TransDate <= '2012-06-30' THEN TransAmt
          WHEN TransDate > '2012-06-30' THEN 0
        END)
 FROM Table_1

您可能希望删除=,这取决于您是否希望包含2012-06-30。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31210640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档