思远 发表于 2008-5-27 19:18

二表查询

create table  A
(
ID  int identity primary key,
Num varchar(20),
Date  datetime,
OperatorID  int,
Status  bit
)
create table  B
(
ID int identity primary key,

OperatorName varchar(20)
)


怎么查找出A.ID,Num,Date,OperatorName,Status(--要显示中文)
--0为未发货 1为已发货
如果我用A.OperatorID=b.ID的话,只能查找出状态为1的数据
因为status=0时,operatorID是为空的

如果用select into  把状态为1的先插入一个临时表,在用insert into 把状态为0的插入到这表,不过有点烦,有没有简单的办法1?

happynight 发表于 2008-5-27 21:01

"如果我用A.OperatorID=b.ID的话,只能查找出状态为1的数据 "
用右外连接解决
"因为status=0时,operatorID是为空的"
CASE status WHEN  0 THEN  '已发货'  ELSE '未发货'  END

wyl918 发表于 2008-9-17 12:29

select A.ID,Num,Date,OperatorName,case Status when 0 then '未发货' else '已发货' end as Status from A left Join B on OperatorID=B.ID

上官逸淳 发表于 2008-9-17 15:40

应该是左外连接吧?

[[it] 本帖最后由 上官逸淳 于 2008-9-17 16:26 编辑 [/it]]

页: [1]

编程论坛