[英]Find the occurrence of a datacell changing in an ordered dataset query?
這是一個包含以下列的示例數據集:名稱/心情/日期
Bob/Happy/11-11-20
Bob/Happy/11-12-20
Bob/Happy/11-13-20
Bob/Sad/11-14-20
Bob/Sad/11-15-20
Bob/Happy/11-16-20
Bob/Happy/11-17-20
Bob/Happy/11-18-20
我希望數據如何顯示如下:
Bob/:)/11-11-20
Bob/Happy/11-12-20
Bob/Happy/11-13-20
Bob/Sad/11-14-20
Bob/Sad/11-15-20
Bob/:)/11-16-20
Bob/Happy/11-17-20
Bob/Happy/11-18-20
當鮑勃第一次開心的時候被微笑取代
到目前為止,我正在處理的是:
SELECT
A.Name as 'Name',
CASE WHEN A.Name = 'Happy' /*after not being 'Happy'*/ THEN ':)' <---THIS IS THE PART I'M HAVING PROBLEMS WITH
ELSE A.Name END as 'Mood',
A.Name as 'Date'
FROM TestTable A
ORDER BY A.Date ASC
我將不勝感激任何幫助。
你可以使用窗口函數,我假設你想為每個人做:
SELECT s.name
, s.Mood
, s.MoodDate
, CASE WHEN (s.Mood <> ISNULL(LAG(Mood) OVER (partition BY NAME ORDER BY s.MoodDate),'First') AND s.Mood = 'Happy' ) THEN ':)' ELSE s.Mood END
FROM TableName AS s
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.