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

我正在尝试使用当 table1.billingaddress isnull 我需要将其替换为

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

来自评论:当帐单地址为空时,这将检查送货地址是否像湖街,并将返回所有帐单地址不为空的行,如果送货地址类似于“湖街”,则返回为空的行

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')

仅基于问题的第一次尝试:

此查询将获取帐单地址类似于“湖街”的任何内容,但如果帐单地址为空,则将获取送货地址类似于“湖街”的任何内容。

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 不为空,“LIKE billingaddress”

其他“喜欢送货地址”?

如果我理解正确,我会将其编辑为答案。

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 回答