Я хочу выбрать все строки из таблицы temp, когда я не предоставляю никаких параметров в предложении where
.Выбор всех строк, если условие равно null в SQL Server
Ниже приведена моя хранимая процедура; #ContactAddressDetails
- моя временная таблица, где доступны окончательные данные. @ZipCodeOrigin
, @ZipCodeDestination
являются параметры
- если
@ZipCodeOrigin = null
и@ZipCodeDestination = null
, то я хочу, чтобы получить все записи, в противном случае только те сопоставления пунктwhere
Код:
CREATE PROCEDURE [CR2].[spGetEmailAddressByZipsTypeahead]
@LoggedInUserId BIGINT
,@ZipCodeOrigin VARCHAR(10) = NULL
,@ZipCodeDestination VARCHAR(10) = NULL
,@searchText varchar(15)
AS
BEGIN
DECLARE @OfficeId INT, @AccountId INT
CREATE TABLE #ContactGroupList (ContactGroupId INT)
SELECT
@OfficeId = OfficeId,
@AccountId = AccountID
FROM CR2.vwAcgUserCustomer WITH (NOLOCK)
WHERE UserID = @LoggedInUserId
-- Find the all Contact Group associated to the User, his/her Office and Account
INSERT INTO #ContactGroupList
SELECT ContactGroupId
FROM CR2.ContactGroup WITH (NOLOCK)
WHERE ((OwnerType = 1 AND OwnerId = @AccountId)
OR (OwnerType = 2 AND OwnerId = @OfficeId)
OR (OwnerType = 3 AND OwnerId = @LoggedInUserId))
--Display all the addresses of the above contact groups.
SELECT
CA.ContactAddressId,
CA.Email AS [Email],
CA.AddressType,
CA.AddressCode
INTO
#ContactAddressDetails
FROM
CR2.ContactAddress AS CA WITH (NOLOCK)
INNER JOIN
#ContactGroupList list ON list.ContactGroupId = CA.ContactGroupId
LEFT JOIN
CR2.ContactAddressDefaultSettings AS CADS WITH (NOLOCK) ON CADS.ContactAddressId = CA.ContactAddressId
LEFT JOIN
CR2.ContactAddressDefault CAD WITH (NOLOCK) ON CAD.ContactAddressId = CA.ContactAddressId
AND CAD.UserId = @LoggedInUserId
WHERE
CA.ZipCode In (@ZipCodeOrigin, @ZipCodeDestination)
AND CA.Email LIKE @searchText + '%'
AND CA.IsDeleted = 0
AND CA.AddressType = 3
SELECT *
FROM #ContactAddressDetails
DROP TABLE #ContactAddressDetails
DROP TABLE #ContactGroupList
END
[Динамические условия поиска в T-SQL] (http://www.sommarskog.se/dyn-search-2008.html) –