検索機能があるUIがあります。検索には2つのパラメータがあります。SQLクエリ入力が必要
ユーザーは、結果、私は正確なSQL(SP)の値のいずれかを書くために得ることに困難を抱えてい
を(すなわち、それのどちらかがnullにすることができます)を取得するために2つのparamsのいずれかを検索することができます無効である。例えば
以下のように:ユーザーはparam1
値を入力した場合、検索は
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
とparam2
値を入力すると、それはまた、微細
しかし、ユーザーがparam1
の値を入力せず、ちょうどparam2
の値を入力した場合、検索は機能しません。
私のテンポラリテーブルは空であり、参加するときは何も返しません。
これを行うにはどのような回避策がありますか?
おかげ
使用しているdbmsにタグを付けます。そのコードは製品固有です。 – jarlh
'LEFT JOIN'を使用する – JohnHC
左結合はすべての行を与えますが、一致する行のみを入力する – user1563677