0

不知道为什么取消选择不起作用。

select top 20 * from (
    Select  Rec_Num, 
    COALESCE(AppByENo6,AppByENo5,AppByENo4,AppByENo3,AppByENo2,AppByENo1)
    as 'ApprovedBy' FROM FO_Entry INNER JOIN Employees ON FO_Entry.Hq_Code = Employees.E_HQCode)  as abc
where ApprovedBy LIKE '%2459%'
deselect
select top 10 * from (
    Select  Rec_Num, 
    COALESCE(AppByENo6,AppByENo5,AppByENo4,AppByENo3,AppByENo2,AppByENo1)
    as 'ApprovedBy' FROM FO_Entry INNER JOIN Employees ON FO_Entry.Hq_Code = Employees.E_HQCode)  as abc
where ApprovedBy LIKE '%2459%'

任何想法我做错了什么?

下面的工作......但不是上面的......

select top 20 Rec_Num,E_No,E_Name FROM EmployeeDB
except
select top 10 Rec_Num,E_No,E_Name FROM EmployeeDB
4

2 回答 2

1

试试下面的查询

select top 20 * from (
    Select  Rec_Num, 
    COALESCE(AppByENo6,AppByENo5,AppByENo4,AppByENo3,AppByENo2,AppByENo1)
    as 'ApprovedBy' FROM FO_Entry INNER JOIN Employees ON FO_Entry.Hq_Code = Employees.E_HQCode)  as abc
where ApprovedBy LIKE '%2459%'
EXCEPT 
select top 10 * from (
    Select  Rec_Num, 
    COALESCE(AppByENo6,AppByENo5,AppByENo4,AppByENo3,AppByENo2,AppByENo1)
    as 'ApprovedBy' FROM FO_Entry INNER JOIN Employees ON FO_Entry.Hq_Code = Employees.E_HQCode)  as abc
where ApprovedBy LIKE '%2459%'

或使用偏移量,您可以选择接下来的 10 行,如下所示

select * from (
        Select  Rec_Num, 
        COALESCE(AppByENo6,AppByENo5,AppByENo4,AppByENo3,AppByENo2,AppByENo1)
        as 'ApprovedBy' FROM FO_Entry INNER JOIN Employees ON FO_Entry.Hq_Code = Employees.E_HQCode)  as abc
    where ApprovedBy LIKE '%2459%' OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;

或者您可以使用 row_number 来选择接下来的 10 行,如下所示

select * from (
    Select  Rec_Num, 
    COALESCE(AppByENo6,AppByENo5,AppByENo4,AppByENo3,AppByENo2,AppByENo1)
    as 'ApprovedBy',
    ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS RN
    FROM FO_Entry INNER JOIN Employees ON FO_Entry.Hq_Code = Employees.E_HQCode)  as abc
where ApprovedBy LIKE '%2459%'
AND RN>=10 AND RN<=20
于 2018-04-27T11:19:29.283 回答
1

要选择第 11 到 20 行,请使用 fetchoffset跳过 10 行,然后fetch first选择以下 10 行:

select
...
ORDER BY somecolumn
OFFSET 10 FETCH FIRST 10 ROWS ONLY
于 2018-04-27T11:36:28.773 回答