看板 Database 關於我們 聯絡資訊
資料庫名稱:sql server 內容/問題描述: 期望同個group取出前兩筆 假設有多筆資料 pkey1 123 pkey2 123 pkey3 123 pkey4 456 pkey5 456 pkey6 456 使用group by 後想要只取出前兩筆資料如下 pkey1 123 pkey2 123 pkey4 456 pkey5 456 目前使用過子查詢並且將連結中範例改為select top 2 連結如下, https://goo.gl/DVLvjw 但會有錯誤訊息提示子查詢不可回傳多筆資料 還請前輩們開示與提點 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.163.203 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1480955581.A.A31.html
streetbad: 把group欄位distinct丟到暫存,設定變數去接總共幾種 12/06 08:50
streetbad: group,再用WHILE迴圈看是要組字串(UNION語法)或是塞到 12/06 08:50
streetbad: 新的暫存表 12/06 08:50
streetbad: 如果需要寫法再跟我說吧..... 12/06 09:25
LegendC: select * from @table a where Memo IN 12/06 11:26
LegendC: ( SELECT TOP 1 Memo from @table where ID = a.ID) 12/06 11:27
LegendC: 把上面那行的TOP 1 改成 TOP N就可以達到你要的 12/06 11:27
streetbad: 對耶樓上的寫法是選每種group的前兩筆.... 12/06 11:44
streetbad: 語法試了一下 欄位對應 Memo=pkey, ID = 123/456/..... 12/06 11:45
streetbad: 感謝傳說C~~Orz 我也撞牆了剛才 12/06 11:46