Sql DateDiff中的CASE语句(Amazon红移)

Sql DateDiff中的CASE语句(Amazon红移),sql,amazon-redshift,Sql,Amazon Redshift,我试图在datediff函数中实现CASE语句,但它在“CASE”处或附近抛出了一个错误:语法错误 即使使用以下简化查询,也会出现错误: 选择datediff(当1=1时,则为'month'或'month'结束,'2009-01-01','2009-12-31')作为nummonths 无法在函数中包含CASE语句吗?中datediff()的第一个参数。所以,你不能简单地做你想做的事 相反: select (case when 1=1 then datediff(mon

我试图在datediff函数中实现CASE语句,但它在“CASE”处或附近抛出了一个
错误:语法错误

即使使用以下简化查询,也会出现错误:

选择datediff(当1=1时,则为'month'或'month'结束,'2009-01-01','2009-12-31')作为nummonths


无法在函数中包含CASE语句吗?

datediff()
的第一个参数。所以,你不能简单地做你想做的事

相反:

select (case when 1=1
             then datediff(month, '2009-01-01', '2009-12-31')
             else datediff(month, '2009-01-01', '2009-12-31')
        end) as nummonths;

我假设这是一个过于简化的代码,因为显然在这个查询的任何版本中都不需要
大小写。所以,你不能简单地做你想做的事

相反:

select (case when 1=1
             then datediff(month, '2009-01-01', '2009-12-31')
             else datediff(month, '2009-01-01', '2009-12-31')
        end) as nummonths;

我假设这是一个过于简单的代码,因为显然在这个查询的任何版本中都不需要
case

case在上面的查询中不需要。你想达到什么目的?@RedshiftGuy你是对的,这里的
案例只是为了保持最初的结构!在上述查询中不需要Case。你想达到什么目的?@RedshiftGuy你是对的,这里的
案例只是为了保持最初的结构!是的,它被简化了,这里使用的
案例
只是为了保持相似的结构。非常感谢你的帮助,戈登!是的,它被简化了,这里使用的
案例
只是为了保持相似的结构。非常感谢你的帮助,戈登!