select A,B,C...
from t1
where (isnull(A,B)='xxxxxx')
或是
select A,B,C...
from t1
where (A='xxxxx')
union
select A,B,C...
from t1
where (A is null and B='xxxx' )
或是
select A,B,C...
from t1
where (A='xxxxx') or ( A is null and B='xxxx' )
你的方法,我試過仍不能得到正確答案,不過你的作法讓我靈光一閃..
如果一個table 內我要A,和B欄位的欄位,如果其中一個NULL我才去用另一欄位判斷.
那也可以這麼想把兩個欄位作合併
方法是 如果A=NULL,就抓B欄位的值,否則抓A欄位的值,合併成一新的欄位
(CASE When A IS NULL Then B Else A End )AS A1
那個A1欄位都是我要的資料嘍..用它去作where 過濾及取值..
就完成了..以上是我的作法,可以達到要的東西,當然如果別人還有更好更有效率的作法也歡迎回應..
謝謝以上大大們回應...感恩
SELECT ISNULL(a.a,b.b) as xx tableA a
RIGHT JOIN tableB b
ON b.aID=a.a.aID
(CASE When A IS NULL Then B Else A End )AS A1
這是取值,而非你所要求的
如果A欄位沒有值,就以B欄位去判斷大小
判斷式...
若是一個Table下,取其欄位值,而以A、B兩個欄位為判斷取值的要求,或許,可以試試下列寫法..
Select * From TableName
Where (Case
When TableName.A Is Not NULL Then TableName.A
Else TableName.B
End) = ConditionValue
最後,祝你成功...