簡體   English   中英

在有序數據集查詢中查找數據單元更改的出現?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM