数据类型转换

2019-05-28 15:43发布

对象数据库:oracle 11g     xingb(性别) 字段类型  varchar(2 )     [oracle  数据库里面是 男 和女 的值]

目标数据库  SQL    字段了下   sex (性别)  INT(2)

对方SQL数据需要调取我们的视图

语句应该怎么写 现在这样写的

select    (Case to_char(xingb)  When  '男' Then  '1'When  '女'Then  '2' Else '' End )  sex  from   人员信息


请问这样写是否合适  或者


select    (Case  xingb   When  '男' Then  '1'When  '女'Then  '2' Else '' End )  sex  from   人员信息


这两种是不是一样


1条回答

按我的经验(没测试)

你的二种写法结构相同,但第一写法没必要,因为xingb本身就是varchar类型,它可以直接与'男',‘女’比较而不必转为char的

另外,你的结果要int的,所以不要加引号‘1’就是1,‘2’就用2

还有,oracle这种需求一般用decode而不必用case ....when的

一周热门 更多>