Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 基于多个条件返回多个记录的存储过程_Sql_Sql Server_Tsql_Stored Procedures - Fatal编程技术网

Sql 基于多个条件返回多个记录的存储过程

Sql 基于多个条件返回多个记录的存储过程,sql,sql-server,tsql,stored-procedures,Sql,Sql Server,Tsql,Stored Procedures,我是SQL server新手,因此希望获得有关编写存储过程的快速帮助: 简述我正在做的事情: 该员工表示,他是不同行业领域的专家,愿意在我的国家、我的萨尔明萨兰和我的祖国或国家工作 雇主说,他需要某个专家在他选择的领域行业在有空缺的国家和sal的范围 employee表中有许多列如下的记录: 姓名、电子邮件、myindustries、mycountries、mytype、minsal employer表中有很多列记录,如: 专家需求,在工业,在国外,sal从,sal到 现在,当员工登录时,他/她

我是SQL server新手,因此希望获得有关编写存储过程的快速帮助:

简述我正在做的事情: 该员工表示,他是不同行业领域的专家,愿意在我的国家、我的萨尔明萨兰和我的祖国或国家工作

雇主说,他需要某个专家在他选择的领域行业在有空缺的国家和sal的范围

employee表中有许多列如下的记录: 姓名、电子邮件、myindustries、mycountries、mytype、minsal

employer表中有很多列记录,如: 专家需求,在工业,在国外,sal从,sal到

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

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


有人能帮我写一本sp吗?感谢您的帮助

如果您正在存储逗号分隔的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]

请把你写的代码贴出来。人们通常不喜欢只为您编写代码。事实上,这是一个工作描述,不是一个问题。行业和国家字段是否每个记录包含多个值?例如,如果一名员工在两个不同的行业工作,这两个行业会出现在同一条记录的同一列中,还是该员工会有多行?Mitch,对不起,我从来没有写过sp。我只知道简单的sql语句。请务必理解。Tabby,是的:这里的国家和行业是多个存储国家和行业ID的列,用逗号分隔。那是我被困的主要地方。i、 e.员工表示,他愿意为美国、英国、印度、加拿大等国家工作,其ID存储在mycountries列中,以逗号分隔。雇员和雇主都将国家和行业视为多选择因素。这里的国家和行业是多个存储国家和行业ID的列,用逗号分隔。那是我被困的主要地方。i、 e.员工表示,他愿意为美国、英国、印度、加拿大等国家工作,其ID存储在mycountries列中,以逗号分隔。雇员和雇主都可以选择国家和行业。@PNM-规范化这些数据,这将非常容易。我基本上不是一个数据库专家,除了编写简单的SQL语句来插入/更新之外,我不太了解其他任何事情:。也许有人笑了,但我只能道歉。@PNM-没人笑,人们问问题是因为他们不知道。基本上,您的表的设计很差,这就是为什么很难获得所需数据的原因。您可以使用查找表,其中每个员工/国家/地区组合都有一行,雇主也有一行。然后,您可以加入这些查找表并获得所需的信息,而无需拆分逗号分隔的字符串