【发布时间】:2016-11-07 12:41:55
【问题描述】:
SELECT
Staff.FullName, Skills.Name, Staff.Team, StaffSkills.Rating
FROM
StaffSkills
INNER JOIN
Staff ON Staff.Id = StaffSkills.StaffId
INNER JOIN
Skills ON Skills.Id = StaffSkills.SkillId
WHERE
Staff.Team LIKE '%financial services%'
AND (Skills.Name LIKE '%SDLC%' OR Skills.Name LIKE '%prince2%' OR
Skills.Name LIKE '%agile%' OR Skills.Name LIKE '%waterfall%' OR
Skills.Name LIKE '%oracle%' OR Skills.Name LIKE '%stakeholder%' OR
Skills.Name LIKE '%leadership%' OR Skills.Name LIKE '%negotiation%' OR
Skills.Name LIKE '%planning%')
我的目标是过滤结果,以便它显示金融服务下所有拥有“%project management%”技能的人-我还希望结果显示更多的技能(如果他们拥有任何技能)-所以任何在 OR 子句之后,如果他们拥有在那里命名的技能,它应该显示在我的结果中。
即将插入预期结果,请耐心等待。
【问题讨论】:
-
规则不明确。只返回金融服务团队中具有项目管理技能的用户。那些具有您列出的其他技能的用户,无论团队如何,并且具有项目管理技能?显示一个示例结果,这将有助于阐明您的需求。以及为什么有这么多“Like”语句......不能是平等检查吗?
-
你的问题有点不清楚。如果您向我们展示一些示例数据以及您想要的输出,也许会有所帮助。
-
请显示预期输出。有一个模拟创建表和插入数据脚本也很有用,可以为那些试图帮助你的人节省时间
-
也就是说,如果我正确理解您的要求,您的查询可能需要与技能表进行自我(外部)联接才能获得额外的技能。
标签: sql sql-server tsql filter