如何排序和使用if语句sql

如何排序和使用if语句sql,sql,Sql,所以我有这个项目要做,我真的不知道该做什么 1.假设worker表的以下两列是在程序执行之前创建的(您的程序不必创建这两列): 这些列表示将分配给每个工作人员的引线。您的程序将为每个工作者在这些列中插入数据 现在,每个工人都将有一名领导指派给他。上面的两列表示领导者的姓氏和名字。以下是为每位员工选择领导的标准: 根据年龄和住宿情况分配领导。每个工人都被分配到住在同一小屋的下一个年龄最大的工人。例如,迪克·琼斯让帕特·拉维担任领导。帕特·拉维让约翰·皮尔森担任领导。约翰·皮尔森任命安德鲁·戴伊为领

所以我有这个项目要做,我真的不知道该做什么

1.假设worker表的以下两列是在程序执行之前创建的(您的程序不必创建这两列):

这些列表示将分配给每个工作人员的引线。您的程序将为每个工作者在这些列中插入数据

现在,每个工人都将有一名领导指派给他。上面的两列表示领导者的姓氏和名字。以下是为每位员工选择领导的标准:

根据年龄和住宿情况分配领导。每个工人都被分配到住在同一小屋的下一个年龄最大的工人。例如,迪克·琼斯让帕特·拉维担任领导。帕特·拉维让约翰·皮尔森担任领导。约翰·皮尔森任命安德鲁·戴伊为领袖。安德鲁·戴伊任命乔治·奥斯卡为领袖。George Oscar是年龄最大的,并且没有任何人作为引线(引线列设置为NULL)。如果工人没有年龄(如工作组),他们将被指定最年长的工人作为领导。解析出每个工作人员的姓和名,并插入到相应的列中。如果工人不住在小屋里,他们就没有队长。如果只有一个工人住在一个小屋里,他们也没有组长

我该怎么做呢

到目前为止,我已经

select 
LAG (p.name) over (order by p.lodging, p.age) Leader_ln, p.name
--lead (p.name) over( order by p.age, p.lodging) Leader_fn --
from worker p;

你很接近。还记得在这种情况下,
划分是怎么做的吗?但是我必须对它进行排序,这样,如果这个人是小屋里最年长的人,那么领队是空的,我无法弄清楚这一点。所以有多个小屋,每个都有X个数量的人住在里面。那么如何让它显示空值呢。将有多个人在leader槽中的值为空,我还必须将姓名拆分,就像Joe Smith必须拆分到leader位置中只有Joe出现在leader\u FN中,Smith出现在leader\u LN中一样
select 
LAG (p.name) over (order by p.lodging, p.age) Leader_ln, p.name
--lead (p.name) over( order by p.age, p.lodging) Leader_fn --
from worker p;