我想要返回設計SQL View
它從表中返回TOP 3
記錄從小到大的順序考慮NULL
表中的值作爲最大值,以便我可以丟棄前3個結果中的空值如果存在超過三條記錄。在SQL視圖中排序錯誤
我能夠成功地做到這一點,使用下面的查詢,但因爲它是行爲不端的原因第三條記錄是,如果我的表中的第三和第四條記錄是相同的,那麼我的視圖返回一個NULL值是第三條記錄有點奇怪。
例如,考慮我和值23,45,19,35,35
,當我跑我的看法應該以升序返回頂部3個值這是19,23,35
但由於某些原因,我的查詢返回19,23,NULL
並命名爲Grades
在我的表中的列查詢工作正常,如果我是35的第三個記錄是不同的,即如果Grades
是23,45,19,35,40
然後正常工作,並返回19,23,35
我的查詢如下
CREATE VIEW [dbo].[test]
AS
SELECT distinct
CC.Grades,
CC.Term,
FROM CanadianCrudes CC
CROSS APPLY (SELECT TOP 3
Grades
FROM CanadianCrudes iCC
WHERE CC.Term = iCC.Term
ORDER BY case when iCC.Grades is null then 1 else 0 end, iCC.Grades asc) iCC
上面的查詢僅僅是一個好我的觀點 – DoIt
的一部分,但它不會改變的事實,你不能在一組特定的順序視圖。 – jhe
我編輯了我的查詢 – DoIt