와 절 내가 붙어있어 WHERE 조건나는 다음과 같은 쿼리 함께 일하고 경우 문
SELECT
@siteID = Site.siteID,
@customerID = Customer.customerID
FROM
Customer
inner join Site on Customer.siteID = Site.siteID
WHERE
Site.phoneNumber = @vaultID
and Customer.clientID = @clientID
여덟 개 문자 필드에 네 개의 문자 필드에서 업데이트 할 Customer.clientID 필드의 일부를, 전 : '1234'는 '1234 01'이됩니다. 고객은 항상 4 자의 ID를 전달합니다. 레코드의 siteID에 따라 ID의 처음 네 글자 만 읽도록 쿼리를 수정해야합니다. 그래서 제가 계속 노력하고있는 것은 where 절에 이것을 추가하는 것입니다 :
AND
CASE
WHEN Site.siteID IN ('1T','1Q')
THEN RTRIM(LTRIM(SUBSTRING(Customer.clientID ,1,6)))= @clientID
ELSE
Customer.clientID = @clientID
END
그러나 나는별로 운이 없습니다. 제가 지금까지해온 연구 결과에 따르면 where 절에있는 case 문은 시작하기에 좋은 생각이 아니지만 여기에 가깝다고 생각합니다. 나는이 호출을하기 전에 사이트 테이블에 완전히 별개의 호출을 할 수 있지만 실제로는 한 문장으로 이것을 얻고 싶습니다.
왜 동적 SQL을 사용하지 않습니까? – logixologist
동적 SQL은 여기에 금지되어 있습니다. 그것이 제가 선호했던 방법이었습니다. – TrevorGoodchild