sql语句 关于空值

qq_liang 2009-02-13 06:31:58
X:
字段名:A B C
1 a 22
1 33
Y:
字段名:A B D
1 a 44
1 55
——————————————————————
SELECT x.*
FROM X INNER JOIN
Y ON X.A = Y.A AND X.B = Y.B
结果只有一条记录
1 a 22
我希望得到的是,空值也包括的
1 a 22
1 33
————————————
该怎么写
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Angiehe 2009-02-13
  • 打赏
  • 举报
回复
select x.* from x 
inner join y
on isnull(x.A,0)=isnull(y.A,0) and isnull(x.B,0)=isnull(y.B,0)
  • 打赏
  • 举报
回复

--> (让你望见影子的墙)生成测试数据,时间:2009-02-13

if not object_id('X') is null
drop table X
Go
Create table X([A] int,[B] nvarchar(2),[C] int)
Insert X
select 1,N'a',22 union all
select 1,null,33
Go
Select * from X

--> (让你望见影子的墙)生成测试数据,时间:2009-02-13

if not object_id('Y') is null
drop table Y
Go
Create table Y([A] int,[B] nvarchar(2),[D] int)
Insert Y
select 1,N'a',44 union all
select 1,null,55
Go
Select * from Y


select X.*
from X join Y on x.a=y.a and isnull(x.b,0)=isnull(y.b,0)

1 a 22
1 NULL 33
rucypli 2009-02-13
  • 打赏
  • 举报
回复
SELECT x.*
FROM X INNER JOIN
Y ON X.A = Y.A AND X.B = Y.B
union all
select x.*
from X inner join
Y on X.A=Y.a and X.B is null and Y.B is null
liangCK 2009-02-13
  • 打赏
  • 举报
回复
多个空值的时候呢?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧