请教如何查找对应项是否有数据?

FoxLinn 2010-12-22 11:17:33
有2个表,a、b,用字段ID关联,表a、表b都有一个字段NAME,我想根据表A的NAME字段来查找表b的NAME字段有没有对应的内容,如无则显示“--”

表a:
ID NAME AGE
1 张三 20
2 李四 30
3 王五 25
4 马六 18

表b:
ID NAME WEIGHT
1 张三 120
4 马六 140

结果:
ID NAME AGE WEIGHT
1 张三 20 120
2 李四 30 --
3 王五 25 --
4 马六 18 140

...全文
143 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
soulJava 2010-12-22
  • 打赏
  • 举报
回复
SELECT A.*,ISNULL('--',B.WEIGHT) FROM A LEFT JOIN B ON A.NAME=B.NAME
飘零一叶 2010-12-22
  • 打赏
  • 举报
回复
如果有重名的话,结果会多出几行,最好有唯一主键作为连接条件
飘零一叶 2010-12-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dlut_liuq 的回复:]
SQL code
SELECT A.*,CASE WHEN B.WEIGHT IS NULL THEN '--' ELSE B.WEIGHT
FROM A LEFT JOIN B ON A.NAME=B.NAME
[/Quote]
修正
SELECT A.*,CASE WHEN B.WEIGHT IS NULL THEN '--' ELSE B.WEIGHT END AS B.WEIGHT
FROM A LEFT JOIN B ON A.NAME=B.NAME
飘零一叶 2010-12-22
  • 打赏
  • 举报
回复
SELECT A.*,CASE WHEN B.WEIGHT IS NULL THEN '--' ELSE B.WEIGHT
FROM A LEFT JOIN B ON A.NAME=B.NAME
So_CooL 2010-12-22
  • 打赏
  • 举报
回复
Create table a
(
ID int,
NAME varchar(20),
AGE int
)
insert into a
select 1,'张三',20
union all
select 2,'李四',30
union all
select 3,'王五',25
union all
select 4,'马六',18
GO

Create table b
(
ID int,
NAME VARCHAR(20),
WEIGHT INT
)
go
INSERT INTO b
SELECT 1,'张三',120
UNION ALL
SELECT 4,'马六',140
gO

SELECT a.*,ISNULL(b.NAME,'---') FROM A LEFT JOIN b ON A.NAME = B.NAME
yy1987316 2010-12-22
  • 打赏
  • 举报
回复
select a.*,isnull(b.weight,'--') from a left join b on a.name=b.name
一卷阳光 2010-12-22
  • 打赏
  • 举报
回复
SELECT a.*,ISNULL(b.WEIGHT,'--') FROM a
LEFT JOIN b ON a.name=b.name
yanyi1210 2010-12-22
  • 打赏
  • 举报
回复

SELECT a.*,ISNULL(b.WEIGHT,'--') FROM a
LEFT JOIN b ON a.name=b.name

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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