1
我有UI有搜索功能的地方。搜索中有2個參數。需要SQL查詢輸入
用戶可以搜索的任一兩個參數來獲得的結果(即,或者它可以爲null)
我有在越來越困難寫的確切SQL(SP)的值,當一個一片空白。
例如如下:
declare @param1, @param2
create table #Ids
(
Id bigint,
Name varchar(10)
)
--Inserting multiple ids in my temp table
IF @param1 IS NOT NULL
BEGIN
INSERT INTO #Ids (Id, Name)
SELECT DISTINCT Id, Name
FROM MainIdTable I
WHERE (I.Name = @param1)
END
SELECT
I.Name, S.ID, S.Value
FROM
SecondTable S
JOIN
#Ids I ON S.Id = P.Id
WHERE
S.Date = '2012-01-06'
AND s.tempId = ISNULL(@param2, p.tempId)
- 如果用戶輸入
param1
值,如果用戶輸入兩者param1
和param2
值搜索工作正常 - ,那麼它也能正常工作
但是,如果用戶未輸入param1
值,但只輸入param2
值,則搜索不起作用。
我認爲這是因爲我的臨時表是空的,當我們進行連接時,它什麼都不返回。
任何解決方法,以獲得此工作?
感謝
標記您正在使用的dbms。該代碼是特定於產品的。 – jarlh
使用'LEFT JOIN' – JohnHC
左連接會給我所有的行,而我只想匹配的行 – user1563677