所以我试图从表2中选择已经外部连接到表1的字段1,并且我想使用isnull()命令将field1作为空白而不是null返回。但它仍然为我返回空值。这是我的查询:
select
field1
from
table1
left outer join (select
(isNull(field1,''))field1,
id2
from table2)tb2 on table1.id1= tb2.id2
任何人都知道问题出在哪里?
答案 0 :(得分:1)
您需要使用COALESCE()
代替ISNULL()
答案 1 :(得分:1)
问题是您使用LEFT
作为table1
表。
如果table1
包含的id1
与id2
中的table2
不符,则table2
没有返回任何内容,因此转化不会发生。
您必须在选择的第一部分使用isNull
。
SELECT
isnull(field1,'')
FROM table1
LEFT OUTER JOIN (
SELECT field1, id2 FROM table2
) tb2 ON table1.id1= tb2.id2
答案 2 :(得分:1)
您不需要派生查询,只需进行正常连接:
select coalesce(field1,'') as field1
from table1
left outer join table2
on table1.id1= tb2.id2
如果您在原始查询中使用COALESCE
,则无法使用;在主SELECT
声明中需要它。