我有一个查询,它必须返回一个值。
我的查询返回2行。但我必须设置条件:如果我的列是[STJH_DATE_ACTION] <= GETDATE()
,我必须只显示第一行
如果我的列[STJH_DATE_ACTION] < GETDATE()
我想显示第二行。
我尝试了以下查询:
WITH CTE AS
(
SELECT
ROW_NUMBER () OVER (PARTITION BY ST_ID, STJ_JOUR ORDER BY A.STJH_DATE_ACTION DESC) AS RN,
*
FROM
bloc.W_TMD_JOUR_HISTORIQUE A
)
SELECT *
FROM CTE
WHERE CTE.ST_ID = 268 AND CTE.STJ_JOUR = 1
如何添加Case When
表达式?
我有这个结果
1条答案
按热度按时间7cjasjjr1#
我更愿意有一个最低限度的可重复的示例代码来使用。我盲目地去你的代码示例以上,你的描述。我添加了一个
CASE
表达式到您的CTE。然后在主要的SELECT
,我按CASE
表达式排序,并添加TOP 1
,以确保我们只得到一行。我不完全了解天气,调用GETDATE()
两次总是会产生与我使用它相同的结果。更新:
CASE
“表达式”不是语句。