5 개의 변수 (@ skill1, @ skill2, @ skill3, @ skill4, @ skill5)가 null 또는 비어 있지 않은지 결정하기 위해 의사 결정 진술을 작성하려고합니다.SQL 결정 문
people_skills 테이블에는 각 사람마다 다른 기술이 있습니다. 따라서 한 사람에 대해 두 가지 이상의 기록이있을 수 있습니다. 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