1
select firstname,lastname 
from table1 (nolock) 
left outer join table2 
    on table1.ID=table2.ID
where table1.billingaddress like 'Lake street''

table1.billingaddressがnullの場合のように使用しようとしていますが、これを次のように置き換える必要があります

table2.shippingaddress

select firstname,lastname 
from table1 (nolock) 
left outer join table2 
    on table1.ID=table2.ID
where case billingaddress isnull then shippingaddress like 'Lake street'

望ましい結果が得られていません。SQLクエリを使用してこれを実装する方法についての考えを共有してください。

4

3 に答える 3

2
select firstname,lastname 
from table1 (nolock) 
left outer join table2 on table1.ID=table2.ID
where isnull(billingaddress, shippingaddress) like 'Lake street'
于 2012-07-23T19:32:54.367 に答える
1

コメントから:請求先住所がnullの場合、配送先住所がLake streetのようであるかどうかを確認し、null以外の請求先住所のすべての行と、配送先住所が「Lakestreet」のようの場合はnullの行を返します。

SELECT firstname,lastname 
FROM table1 (nolock) 
LEFT OUTER JOIN table2 on table1.ID=table2.ID
WHERE billingaddress IS NOT NULL OR (billingaddress IS NULL AND shippingaddress LIKE 'Lake street')

質問のみに基づく最初の試み:

このクエリは、請求先住所が「lake street」のようなものを取得しますが、請求先住所がnullの場合、配送先住所が「lakestreet」のようなものを取得します。

SELECT firstname,lastname 
FROM table1 (nolock) 
LEFT OUTER JOIN table2 on table1.ID=table2.ID
WHERE COALESCE(billingaddress, shippingaddress) LIKE 'Lake street'

編集:「レイクストリート」は無意味ですが、少なくともワイルドカードを使用していることを教えてください。

于 2012-07-23T19:34:35.380 に答える
0

ですから、これを明確にするために、あなたが望むのは次のとおりです。

Table1.billingaddressがnullでない場合、「LIKEbillingaddress」

それ以外の場合は「配送先住所のように」?

私があなたを正しく理解していれば、これを答えに編集します。

select firstname,lastname 
from table1 (nolock) 
left outer join table2 on table1.ID=table2.ID
where CASE WHEN billingAddress IS NULL THEN shippingAddress ELSE billingAddress END LIKE     'Whatever'
于 2012-07-23T19:33:48.840 に答える