我在表格中有37行,如何显示36行
SELECT c.CommonContentId
,c.Content_Code
,c.Content_Name
,c.Seo_Name
,c.[Description]
,c.Link
,c.Page_Path
,c.ContentType_Code
,c.Creation_Date
,c.Is_Active
,c.Last_Update_Date
,c.Category_Code
,c.Category_Code_Style
,c.Content_Script
,c.Content_Website
,c.Logo_Path
,c.Case_Study
,c.SortOrder
,c.Tags
,c.Vl_Page_Image_Url
,c.Is_Show_Vl_Pages,
,ct.ContentType_Name
,cat.Category_Name
,cat1.Category_Name as Category_Name_Style
,ROW_NUMBER() over (ORDER BY c.ContentType_Code ASC, c.Content_Code DESC) as Record_No
,CASE WHEN ROW_NUMBER() over (ORDER BY c.ContentType_Code ASC, c.Content_Code DESC) % 3 = 0
THEN '' ELSE '' END as Class
,c.SortOrder
, Case WHEN len(logo_path) > 1
then 'imagePadded'
else '' end as Tetimonial_Image_Css
,Case when c.Link like '%vidyard%'
then 'http://play.vidyard.com/'+c.Page_Path+''
else 'http://vimeo.com/'+c.Page_Path+'' end as videolinks
FROM Content c
INNER JOIN ContentType ct ON c.ContentType_Code = ct.ContentType_Code
LEFT OUTER JOIN Category cat ON c.Category_Code = cat.Category_Code
LEFT OUTER JOIN Category cat1 ON c.Category_Code_Style = cat1.Category_Code
WHERE c.Is_Active = 1
答案 0 :(得分:1)
目前尚不清楚是否需要 Oracle 或 MS SQL服务器的答案,因为您的问题都是用PL / SQL和SQL服务器标记的。< / p>
据我所知,没有跨供应商的语法来实现这一目标。
使用TOP
clause:
SELECT TOP (36)
...
对于Oracle,一种方法是使用pseudo-column ROWNUM
:
SELECT ....
WHERE ROWNUM <= 36
从Oracle 12c开始(我认为),您可以使用FETCH
clause:
SELECT ...
FETCH FIRST 36 ROWS ONLY;
答案 1 :(得分:-1)
我将使用CTE。然后跳过最后一行。这适用于具有任意数量记录的表,并且真正地&#34;跳过sql server表中的最后一条记录&#34;没有使用任何幻数。
WITH CTE AS
(
-- Your SQL Statement here...
)
Select * from CTE
where Record_No <> (SELECT Count(*) from CTE)