4

私は2つの結合されたテーブルを持っています。表 1 にはクライアント データがあり、表 2 にはそのステータスがあります。

ワイルドカードで名前を検索する必要がありますが、テーブル 2 のステータスに基づいて結果を返したいだけです。これは、@ClientName 変数に実際にデータを入力すると機能しますが、空のままにすると、すべてのレコードが返され、 @ClientStatus 変数。これを修正する方法についてのアイデアはありますか?

DECLARE @ClientName NVARCHAR (100) = '' 
DECLARE @ClientStatus INT = 1 

SELECT DBO.CLIENTS.CLIENTID, 
       DBO.CLIENTS.FIRST_NAME, 
       DBO.CLIENTS.LAST_NAME, 
       DBO.CLIENTS.PHONE_NUMBER, 
       DBO.CLIENTS.MOBILE_NUMBER, 
       DBO.CLIENTS.HOUSE_ADDRESS_NUMBER, 
       DBO.CLIENTS.STREET_NAME, 
       DBO.CLIENTS.TOWN_CITY, 
       DBO.CLIENTS.POST_CODE, 
       DBO.CLIENTS.EMAIL_ADDRESS, 
       DBO.CLIENTS.CLIENT_SOURCE, 
       DBO.CLIENTS.CLIENT_STATUS, 
       DBO.CLIENTS.DATE_ADDED, 
       DBO.CLIENTS.CALL_DATE, 
       DBO.CLIENTS.CALL_TIME, 
       DBO.CLIENT_STATUS.CLINIC_STATUS 
FROM   DBO.CLIENTS 
       INNER JOIN DBO.CLIENT_STATUS 
               ON DBO.CLIENTS.CLIENT_STATUS = DBO.CLIENT_STATUS.STATUSID 
WHERE  ( DBO.CLIENT_STATUS.CLINIC_STATUS = @ClientStatus ) 
       AND ( DBO.CLIENTS.LAST_NAME LIKE @ClientName + '%' ) 
        OR ( DBO.CLIENTS.MOBILE_NUMBER LIKE @ClientName + '%' ) 
4

2 に答える 2