SQL IF语句?
问题描述:
我正在处理查询,部分查询必须根据事务发生的时间返回值。SQL IF语句?
表的简化版本将如下
TransDate | TransAmt
--------------------
6/1/2012 | 10
7/5/2012 | 15
6/1/2013 | 15
7/1/2013 | 15
的限制是那个(TransDate)前发生的任何交易,2012年6月30日将返回全TransAmt。如果交易发生在2012年6月30日之后,TransAmt的值必须返回为0.
我相信我需要使用CAST函数以及CASE函数,但是我没有遇到任何函数。任何帮助或指导将不胜感激。
我也在使用SQL Server 2008。
答
您可以使用case
:
select (case when TransDate < '2012-06-30' then TransAmt else 0 end)
. . .
我会强烈建议您使用ISO标准的日期格式(YYYY-MM- DD)。
答
这里是CASE语句将是什么样子:
SELECT
(CASE WHEN TransDate <= '2012-06-30' THEN TransAmt
WHEN TransDate > '2012-06-30' THEN 0
END)
FROM Table_1
您可能要删除这取决于你是否希望2012-06-30列入与否=。