사례에 대한 계정을 얻으려면 저장 프로 시저를 사용하고 있습니다. @accounts
매개 변수가 NULL
인 경우 해당 사례에 대한 모든 계정을 가져오고 싶습니다. @accounts
이 NOT NULL
인 경우 쉼표로 구분 된 accountid 문자열입니다. 나는 이것을 처리 할 수있는 단일 where 절을 원합니다. @accounts
이 NULL
인 경우 사례에 대한 모든 계정을 가져옵니다. 그렇지 않으면 @accounts
매개 변수를 사용하고 지정된 계정 아이디로 계정을 가져옵니다. 두 개의 서로 다른 WHERE
절로 쿼리를 두 번 필요로하는 큰 문 IF
을 피하고 싶습니다.SQL WHERE 절이 동적이어야합니다.
DECLARE @caseId BIGINT,
DECLARE @accounts VARCHAR(255)
SELECT TOP 1 @userId = userId FROM TblTraceCur t
WHERE caseId = @caseid
ORDER BY processDate DESC
SELECT
.... (select logic) ...
WHERE
t.caseId = @caseID AND
t.userId = @userId AND
t.shortStock = 0 AND
... (where I need the new logic) ...
order by t.tracln ASC
감사합니다.
쿼리 최적화 프로그램에서 인덱스를 사용할 수 있으므로 임시 테이블과 [Split() function] (http://stackoverflow.com/questions/697519/split-function-equivalent-in-tsql)을 사용하는 것이 더 나을 것입니다. 따라서 속도가 향상됩니다. –