ケースのアカウントを取得するためのストアド プロシージャに取り組んでいます。@accountsパラメータがの場合NULL、ケースのすべてのアカウントを取得します。@accountsの場合NOT NULL、アカウント ID のカンマ区切りの文字列になります。これを処理できる単一の where 句が必要です。ケースのすべてのアカウント@accountsをNULL取得します。それ以外の場合は、@accountsパラメーターを使用して、指定されたアカウント ID を持つアカウントを取得します。2 つの異なる句IFで 2 回クエリを実行する必要があるような大きなステートメントは避けたいと思います。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
どうもありがとう!