ColA ColB ColC ColD
Null Null Null Null
120 Null Null Null
120 1 Null Null
120 1 5 Null
120 1 5 1
Declare @ColA as Int = 120
- 這不能爲NULL,但也可以是一些1500 不存在於數據庫
Declare @ColB as Int = 1
- 這可以爲NULL或者也可以是1500的東西不存在於數據庫
Declare @ColC as Int = 5
- 這可以爲空,也可以是1500的東西不存在於數據庫
Declare @ColD as Int = 1
- 這可以爲空,也可以是1500的東西不存在於數據庫
--Rough草案,但不超過一列
SELECT * FROM @TblA
WHERE
@ColA=ColA AND
ISNULL(ColB, @ColB)= @ColB AND
EXISTS(SELECT 1 FROM @TblA WHERE @ColA=ColA)
UNION
SELECT * FROM @TblA
WHERE
ColA IS NULL AND
ISNULL(ColB, @ColB)= @ColB AND
NOT EXISTS (SELECT 1 FROM @TblA WHERE @ColA=ColA)
SQL輸出工作 - 當@ColA = 120
ColA ColB ColC ColD
120 Null Null Null
120 1 Null Null
120 Null 5 3
120 1 5 Null
120 1 Null 4
120 1 5 1
120 1 5 Null
SQL輸出 - 當@ColA = 1259 @ColA有比賽在此分貝所以得到空可樂
ColA ColB ColC ColD
Null Null Null Null
SQL輸出 - 當@ColA = 120 & @ColB = 1 @ColB具有分貝匹配以便得到匹配的記錄可樂& COLB
ColA ColB ColC ColD
120 1 Null Null
120 1 5 Null
120 1 Null 4
120 1 5 1
120 1 5 Null
SQL輸出 - 當@ColA = 120 & @ColB = 178 @ColB在數據庫不匹配,從而獲得匹配可樂記錄和爲空值,因爲COLB沒有COLB = 178
ColA ColB ColC ColD
120 Null Null Null
120 1 Null Null
120 Null 5 3
120 1 5 Null
120 1 Null 4
120 1 5 1
120 1 5 Null
SQL輸出 - 當@ColA = 120 & @ColB = 1 & COLC = 5獲得ColA的匹配記錄COLB & COLC
ColA ColB ColC ColD
120 1 5 Null
120 1 5 1
120 1 5 Null
SQL輸出 - 當@ColA = 120 & @ColB = 1 & COLC = 500 @ColC在DB敵不過這樣得到可樂COLB但因爲不是COLC匹配的記錄是沒有 COLC = 500
ColA ColB ColC ColD
120 1 Null Null
120 1 5 Null
120 1 Null 4
120 1 5 1
120 1 5 Null
SQL輸出 - 當@ColA = 120 & @ColB = 1 & COLC = 5 &冷= 1個GET匹配記錄可樂& COLB & COLC &冷
ColA ColB ColC ColD
120 1 5 1
SQL輸出 - 當@ColA = 120 & @ColB = 1 & COLC = 5 & @ColD = 500然後@ColD具有分貝沒有匹配,從而得到可樂COLB匹配的記錄& COLC但不能用於冷,因爲沒有冷= 500
ColA ColB ColC ColD
120 1 5 Null
120 1 5 1
120 1 5 Null
可能??
不限運氣????????? – Ken