2024年2月5日 星期一

[研究]T-SQL, SQL Server, FieldA 欄位相同時,選擇出 UpdateDateTime 欄位最新的一筆

[研究]T-SQL, SQL Server,   FieldA 欄位相同時,選擇出 UpdateDateTime 欄位最新的一筆

2024-02-05

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************

T-SQL, SQL Server, 當 FieldA 欄位值為 abc 時,選擇出 UpdateDateTime 欄位最新的一筆

xxxxx
SELECT *
FROM YourTable
WHERE FieldA = 'abc'
AND UpdateDateTime = (
     SELECT MAX(UpdateDateTime)
     FROM YourTable
     WHERE FieldA = 'abc'
)

T-SQL, SQL Server,   FieldA 欄位相同時,選擇出 UpdateDateTime 欄位最新的一筆

SELECT *
FROM (
    SELECT *,
           ROW_NUMBER() OVER (PARTITION BY FieldA ORDER BY UpdateDateTime DESC) AS RowNum
    FROM YourTable
) AS Ranked
WHERE RowNum = 1;


在這個查詢中,ROW_NUMBER()函數會為每個 FieldA 分組中的記錄指派一個行號,依照 UpdateDateTime 降序排序。 然後外部查詢選取每個分組中行號為 1 的記錄,這些記錄就是每個 FieldA 值中最新的記錄。

(完)

相關

沒有留言:

張貼留言