2013年5月29日 星期三

SQL指令取出重覆資料中的第一筆

這是利用SQL 2005才新增的指令ROW_NUMBER()做出來的,其實以前我就寫過了,但舊資料中一直都找不到,這次要使用花了很多時間找,都無法找到,只好上網GOOGLE,剛好查到MSDN的問答記錄,救了我一命,特地記錄下來,免得下次又要花好多時間找.

Select *,ROW_NUMBER() over (partition by ProductNo,customerNo,Brand Order by customerNo ASC) AS no from 單價資料 WHERE no=1

以上可以用 PARTITION BY當成 GROUP BY 來用,再用 ORDER BY 排序資料列,用ROW_NUMBER()新增的資料列則可以用 AS的方式命名,只要做的子查詢,就能獨立抓出一群資料中重複幾筆資料的第一筆出來.