我尝试在sparkSQL中编写一个典型的T-SQL CASE WHEN语句。
T-SQL CASE WHEN语句如下所示:
SELECT
*
,CASE
WHEN DatesTestv3.as_of_date = EOMONTH(DATEADD(MONTH, -1, SYSDATETIME())) THEN 'LM'
END AS 'Last Month End'
from dbo.DatesTestv3
我尝试将上面的T-SQL转换为sparkSQL如下:
spark.sql("select *, case when as_of_date = last_day(add_months(current_date(),-1)) then 'LM' END AS 'Last Month End" from table)
但是,我得到了ParseException错误。
我相信这可能是一个简单的语法问题。
因此,对于如何将T-SQL转换为sparkSQL有什么想法吗?
1条答案
按热度按时间mqkwyuun1#
据我所知,我已经在我的Pyspark中尝试了相同的CASE语句。
我已经创建了下面的列表。id,as_of_date,last_month_end
x1c 0d1x我试过的CASE语句是这样的。我尝试了两种不同的方式。
然后呢
SELECT *,CASE WHEN as_of_date = last_day(date_add(current_date(),-1))THEN 'LM' ELSE NULL END AS
Last Month End
FROM data_dry“"”)result.display()
也可以用**
Date_trunc
**函数试试。