存储过程根据多个条件返回多个记录

时间:2011-05-27 11:18:06

标签: sql sql-server tsql stored-procedures

我是SQL服务器的新手,因此在编写存储过程方面寻求一些快速帮助:

简要介绍我在做什么: 员工说他是不同领域(行业)的专家(类型),愿意在选择国家(mycountries)和我的sal(minsal)和我的祖国(orgcountry)工作

雇主说,他需要那么专业的他所选择的领域(行业)在那里有开放和萨尔范围的国家。

员工表有很多记录,其列如下: 姓名,电子邮件,myindustries,mycountries,mytype,minsal

雇主表有很多记录,其中包含以下列: 专家,行业,国家,sal-from,sal-to

现在,当员工登录时,他/她应该获得匹配雇主的所有记录

当雇主登录时,他/她也会获得匹配员工的所有记录。

有人可以帮忙写sp吗?感谢任何帮助

1 个答案:

答案 0 :(得分:0)

如果您要存储以逗号分隔的ID,则需要一个函数将字符串拆分为多行。这就是你如何使用它:

SELECT DISTINCT employee.name [employee], employer.name [employer]
FROM employee
    OUTER APPLY dbo.split(employee.myindustries) myi (industry)
    OUTER APPLY dbo.split(employee.mycountries) myc (country)
JOIN employer
    OUTER APPLY dbo.split(employer.inindustries) ini (industry)
    OUTER APPLY dbo.split(employer.incountries) inc (country)
WHERE employer.expertneed = employee.type
    AND ini.inindustries = myi.industry
    AND inc.incountries = myc.country
    AND employee.minsal BETWEEN employer.[sal-from] AND employer.[sal-to]