我想創建一個判斷語句來確定5個變量(@ skill1,@ skill2,@ skill3,@ skill4,@ skill5)是否爲空或空。SQL決策陳述
people_skills表包含每個人的不同技能。所以一個人可能會有超過1條記錄。 lkp_skills包含這些技能的名稱。
基於5個不同的技能領域,我想忽略空字符串。我也想搜索lkp_skills表中的字符串。如果變量匹配該表的s.skill字段,那麼我希望它返回該記錄。如果有多種技能,那麼我希望它能夠返回具有這兩種技能的記錄。
什麼是這樣做的最佳方式?
DECLARE @zip char(5) = '61265', -- Zip Code
@skill1 varchar(50) = 'sql', -- Job Skill 1
@skill2 varchar(50) = 'css', -- Job Skill 2
@skill3 varchar(50) = '', -- Job Skill 3
@skill4 varchar(50) = '', -- Job Skill 4
@skill5 varchar(50) = '', -- Job Skill 5
@distance int = 5 -- Distance in miles
SELECT p.people_id, p.first_name, p.last_name, p.address_1, p.address_2, p.city, p.[state],
p.zip_code, (dbo.sp_getDistance(@zip, zip_code)) AS miles, s.skill
FROM people p
INNER JOIN people_skills ps ON ps.people_id = p.people_id
INNER JOIN lkp_skills s ON ps.skill_id = s.skill_id
WHERE (ISNUMERIC(p.zip_code) = 1 AND LEN(RTRIM(LTRIM(p.zip_code))) = 5)
AND p.ROLE_ID <= 4
AND ((dbo.sp_getDistance(@zip, zip_code)) <= @distance)
AND
-- DECISION STATEMENT GOES HERE --
ORDER BY miles
請詳細說明「剩餘部分等」部分。你想要第一個具有價值的技能變量嗎? – David
我將編輯我的原始帖子以反映其餘內容。 – HKImpact