输入:页码,一页显示多少行,是否排序 根据输入的页码,和行数,显示该页的信息

                                                                       ***以下用sql存过 输出 输入写*

3.输入:页码,一页显示多少行,是否排序
根据输入的页码,和行数,显示该页的信息

4.显示SMITH的所有上级(直接和间接的)的信息

5.显示去掉SCOTT后的所有员工信息,并且显示每个员工的级别(leve1)
select * from emp;

6.显示去掉SCOTT及其所有下属后的所有员工信息,
并且显示每个员工的级别(leve1)

8.显示部门编号,部门名称,部门工资,和部门的工资的累加值
(第2个人是前两个人的累加,第3个人是前三个人的累加,依次类推)

9.显示按部门和job汇总的工资,按部门汇总的工资,按job汇总的工资,
所有的工资总合计
并且在工资合计的行,显示出合计项名称,(比如:10部门合计,总合计)
(提示:用增强型分组函数)

11.输入:名字
显示比这个人所在的部门的平均工资高的人的信息,
输出工资最高的人的信息

12.输入:员工编号
显示它的直接上级的信息,输出直接上级的名字和工资

13.输入:名字
如果和员工SMITH工作在同一个部门,则输出部门信息(部门编号,名称,位置)
如果不在同一个部门,则显示部门的员工信息

14.输入:部门名字
显示该部门所有的员工信息,和部门信息

15.显示每个部门的最高工资的员工
输出最高工资最高的那个部门的部门编号,最高工资

17.输入:一个字母
显示名字名包含了该字母的所有员工的信息
输出人数

18.显示出平均工资最高的的部门平均工资及部门名称
并传出平均工资及部门名称

19.输入:员工编号
如果该员工工资大于本部门平均工资,则输出0,否则输出1

20.输入:姓名
如果该员工工资大于所有人的平均工资,
则显示大于平均工资的员工姓名,工资
如果该员工工资小于所有人的平均工资,
则显示小于平均工资的员工姓名,工资

21.输入:多个员工编号(比如:7788,7839,7902)
显示出这些员工的信息

用存储过程实现,每个部门按工资大小排名次(不允许用分析函数)
10 7839 KING 5000 1
10 7782 CLARK 2450 2
10 7934 MILLER 1300 3
20 7788 SCOTT 3000 1
20 7902 FORD 3000 2
20 7566 JONES 2975 3
20 7876 ADAMS 1100 4
20 7369 SMITH 800 5
30 7698 BLAKE 2850 1
30 7499 ALLEN 1600 2
30 7844 TURNER 1500 3
30 7654 MARTIN 1250 4
30 7521 WARD 1250 5
30 7900 JAME 950 6

实现按部门分段(3000及以上、(3000,2000)、(2000,1000)、1000元以下)
统计各个工资段的职工人数、以及各部门的工资总额
(用循环实现累加)
显示格式如下
1000以下 2
1000-2000 5
2000-3000 4
3000以上 3
10部门 8400

员工涨工资,(用循环实现)
从最低工资涨起每人涨10%,但是所有员工的工资总额不能超过5万元
超过5万元以后的人就不涨了,
请计算涨工资的人数和涨工资后的所有员工的工资总额

你这是什么需求怎么感觉每句话都没有说清楚 用存储过程完成上面的每个独立操作吗有table数据吗,给你写了三个。实在太多,有emp表格数据的时候建议你后台私信我完成吧

#3
CREATE PROCEDURE [dbo].[sp_CustomPaging]
    @TableName NVARCHAR(255),
    @Fields NVARCHAR(MAX),
    @OrderBy NVARCHAR(MAX) = NULL,
    @PageIndex INT = 1,
    @PageSize INT = 10
AS
BEGIN
    SET NOCOUNT ON;

    IF @PageIndex <= 0
        SET @PageIndex = 1;

    IF @PageSize <= 0
        SET @PageSize = 10;

    DECLARE @SQL NVARCHAR(MAX);

    SET @SQL = 'SELECT ' + @Fields + ' FROM ' + @TableName

    IF @OrderBy IS NOT NULL AND @OrderBy <> ''
        SET @SQL = @SQL + ' ORDER BY ' + @OrderBy

    SET @SQL = @SQL + ' OFFSET ' + CAST((@PageIndex - 1) * @PageSize AS NVARCHAR(50)) + ' ROWS FETCH NEXT ' + CAST(@PageSize AS NVARCHAR(50)) + ' ROWS ONLY;';

    EXECUTE sp_executesql @SQL;
END

EXEC [dbo].[sp_CustomPaging] @TableName = 'Orders', @Fields = 'OrderID, CustomerID, OrderDate, ShipCountry', @OrderBy = 'OrderDate DESC', @PageIndex = 3, @PageSize = 20;


#4
CREATE PROCEDURE [dbo].[sp_GetEmployeeHierarchy]
    @LastName NVARCHAR(50)
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @EmployeeID INT;
    SET @EmployeeID = (SELECT EmployeeID FROM Employees WHERE LastName = @LastName);

    WITH EmployeeHierarchy AS (
        SELECT EmployeeID, FirstName, LastName, ReportsTo
        FROM Employees
        WHERE EmployeeID = @EmployeeID
        UNION ALL
        SELECT e.EmployeeID, e.FirstName, e.LastName, e.ReportsTo
        FROM Employees e
        INNER JOIN EmployeeHierarchy eh ON eh.ReportsTo = e.EmployeeID
    )
    SELECT * FROM EmployeeHierarchy;
END
EXEC [dbo].[sp_GetEmployeeHierarchy] @LastName = 'SMITH';

#5
CREATE PROCEDURE [dbo].[sp_GetEmployeeByLevel]
AS
BEGIN
    SET NOCOUNT ON;

    WITH EmployeeLevel AS (
        SELECT EmployeeID, FirstName, LastName, ManagerID, 1 AS Level
        FROM Employees
        WHERE LastName != 'SCOTT'
        UNION ALL
        SELECT e.EmployeeID, e.FirstName, e.LastName, e.ManagerID, el.Level + 1
        FROM Employees e
        INNER JOIN EmployeeLevel el ON el.ManagerID = e.EmployeeID
        WHERE e.LastName != 'SCOTT'
    )
    SELECT EmployeeID, FirstName, LastName, Level
    FROM emp;
END


EXEC [dbo].[sp_GetEmployeeByLevel];

功能要求没说清楚。是要写sql?

你这子项有点多呀,是每一个都不会吗?还是来这里找下感觉思路。
提供第一个【3.输入:页码,一页显示多少行,是否排序?根据输入的页码,和行数,显示该页的信息】,假定我来写,我的思路,供你参考。其他的就不一一列举了。
可以使用SQL的Select语句来实现根据输入的页码和行数来显示该页的信息。以下是一个示例:
[这里的 table_name 是要查询的表名,page_no 是要查询的页码,line_count 是该页的行数]

Select *  from table_name  
where page_no = 'your_input'  
order by line_count ASC  
limit row_count;