有两个表dealer表和city表
dealer表包含dealerid,dealername,provinceid,cityid,status
city表包含 provinceid,provincename,cityid,cityname
其中dealer表中的,provinceid,cityid 与city表中的provinceid和cityid没有外键联系,通过联合查询实现
dealer表中的status字段表示状态(以0,1形式存储),0表示'未启用'1,表示'已启用'
现在我要查出dealer表中的dealerid,dealername,status字段如果是0转换为'未启用',1转换为'已启用',city表中的provincename,cityname
我有一个查询语句
select a.dealerid,a.dealername,b.provincename,b.cityname,(case a.status when 0 then '未启用' when 1 then '已启用')as a.status from dealer a,city b where a.provinceid=b.provinceid and a.cityid=b.cityid
但程序报未找到预期的FROM关键字,请教高手该怎么改呢?
dealer表包含dealerid,dealername,provinceid,cityid,status
city表包含 provinceid,provincename,cityid,cityname
其中dealer表中的,provinceid,cityid 与city表中的provinceid和cityid没有外键联系,通过联合查询实现
dealer表中的status字段表示状态(以0,1形式存储),0表示'未启用'1,表示'已启用'
现在我要查出dealer表中的dealerid,dealername,status字段如果是0转换为'未启用',1转换为'已启用',city表中的provincename,cityname
我有一个查询语句
select a.dealerid,a.dealername,b.provincename,b.cityname,(case a.status when 0 then '未启用' when 1 then '已启用')as a.status from dealer a,city b where a.provinceid=b.provinceid and a.cityid=b.cityid
但程序报未找到预期的FROM关键字,请教高手该怎么改呢?
用DECODE簡單!
如果用你的那種做法有以下的地方要改啊!
select a.dealerid,a.dealername,b.provincename,b.cityname,case a.status when 0 then '未启用' when 1 then '已启用' end status from dealer a,city b where a.provinceid=b.provinceid and a.cityid=b.cityid
后面少了end
SELECT a.dealerid, a.dealername, b.provincename, b.cityname,
(CASE a.status
WHEN 0
THEN '未启用'
WHEN 1
THEN '已启用'
END) AS status
FROM dealer a, city b
WHERE a.provinceid = b.provinceid AND a.cityid = b.cityid
这个语句用decode会简洁点
当a.status为空或者0时 用'未启用'赋值:
select a.dealerid,a.dealername,b.provincename,b.cityname,(case when a.status='1' then '已启用'' else '未启用' end)as a.status from dealer a,city b where a.provinceid=b.provinceid and a.cityid=b.cityid 当然这样也能实现:
select a.dealerid,a.dealername,b.provincename,b.cityname,DECODE(a.status,'0','未启用','1','已启用')as status from dealer a,city b where a.provinceid=b.provinceid and a.cityid=b.cityid