我有一個存儲過程,返回指定半徑內的郵政編碼。這些參數是如何使用WHERE/AND子句中的參數在TSQL中編寫條件SELECT查詢?
ALTER PROCEDURE [dbo].[proximitySearch]
@proximity int = 0,
@country varchar (2) = NULL,
@city varchar (180) = NULL,
@state varchar (100) = NULL,
@stateAbr varchar (2) = NULL,
@postalCode varchar(20) = NULL
AS...
在proc,第一查詢需要選擇匹配無論是在通過一個單一的記錄(或沒有記錄),並指定經/緯度局部變量,因爲我開始下面寫:
SELECT TOP 1 @Longitude = Longitude, @Latitude = Latitude
FROM PostalCodes
WHERE ...
這是我難倒... WHERE子句需要基於什麼被通過是有條件的一些參數(或全部)可以爲NULL,我不想使用。他們在查詢,如果他們。
我的線沿線的思考:
SELECT TOP 1 @Longitude = Longitude, @Latitude = Latitude
FROM PostalCodes
WHERE Longitude IS NOT NULL
AND CASE WHEN @postalCode IS NOT NULL THEN PostalCode = @postalCode ELSE 1 END
...但是這是行不通的。這種情況通常如何進行? (我絕對不是一個經驗豐富的TSQL傢伙!!!)提前致謝!
2號作品完美! – Redtopia