create view 医院排名表
as
select 序号,医院名称,医院等级,管辖类别,(医院等级分+管辖类别分) as 得分
from (select 序号,医院名称,医院等级,管辖类别,
CASE 医院等级
WHEN '一级' THEN 10
WHEN '二级' THEN 8.2
WHEN '二级甲等'THEN 9.1
WHEN '二级乙等' THEN 8.8
WHEN '三级甲等' THEN 7.5
WHEN '三级'THEN 7
ELSE 0 END AS 医院等级分,
CASE 管辖类别
WHEN '省级' THEN 10
WHEN '市级' THEN 9
WHEN '县级' THEN 8
WHEN '私人医院' THEN 7
WHEN '附属医院' THEN 8.8
WHEN '职工医院' THEN 8.3
WHEN '军队医院' THEN 9.2
ELSE 0 END
AS 管辖类别分
from 医院信息表) b
;
结果为:
WHEN '一级' THEN 10
*
第 6 行出现错误:
ORA-12704: 字符集不匹配
请问怎么该呢?
------解决方案--------------------
CREATE VIEW 医院排名表 AS
as
SELECT 序号,
医院名称,
医院等级,
管辖类别,
(医院等级分 + 管辖类别分) AS 得分
FROM (SELECT 序号,
医院名称,
医院等级,
管辖类别,
CASE
WHEN 医院等级 = '一级' THEN
10
WHEN 医院等级 = '二级' THEN
8.2
WHEN 医院等级 = '二级甲等' THEN
9.1
WHEN 医院等级 = '二级乙等' THEN
8.8
WHEN 医院等级 = '三级甲等' THEN
7.5
WHEN 医院等级 = '三级' THEN
7
ELSE
0
END AS 医院等级分,
CASE
WHEN 管辖类别 = '省级' THEN
10
WHEN 管辖类别 = '市级' THEN
9
WHEN 管辖类别 = '县级' THEN
8
WHEN 管辖类别 = '私人医院' THEN
7
WHEN 管辖类别 = '附属医院' THEN
8.8
WHEN 管辖类别 = '职工医院' THEN
8.3
WHEN '军队医院' THEN
9.2
ELSE
0
END AS 管辖类别分
FROM 医院信息表) B;
改成这样试试
------解决方案--------------------
仔细看我给的sql,和你的sql有区别的,仔细看,我已经给出了改正方法。