此論壇問題是要重覆資料不顯示,一看見問題是直覺這不是應該在報表中設定,就可以達到的效果。
DECLARE @Temp TABLE (STDID char(4),StdName char(10),Course char(20))
INSERT INTO @Temp VALUES('0001','張三','ASP.NET')
INSERT INTO @Temp VALUES('0001','張三','HTML5')
INSERT INTO @Temp VALUES('0001','張三','CSS')
INSERT INTO @Temp VALUES('0002','李四','C#')
INSERT INTO @Temp VALUES('0003','王五','T-SQL')
INSERT INTO @Temp VALUES('0003','王五','SSRS')
INSERT INTO @Temp VALUES('0003','王五','SSIS')
INSERT INTO @Temp VALUES('0003','王五','Perfomance Tuning')
SELECT
IIF(ROWNO = 1 , STDID , NULL) AS STDID ,
IIF(ROWNO = 1 , STDName , NULL) AS STDName ,
Course
FROM
(
SELECT * ,
ROW_NUMBER() OVER (PARTITION BY STDID ORDER BY STDID) AS ROWNO
FROM @Temp
) AS T
利用 ROW_NUMBER() 根據 STDID 去跑出排序,在 SELECT 中根據排序利用 CASE WHEN 或是 IIF 來判斷是不是第一筆資料,非第一筆資料則用 NULL 來表示。
沒有留言:
張貼留言