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