十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
select abs(to_char('-123.45')) from dual
成都创新互联长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为邳州企业提供专业的网站设计制作、做网站,邳州网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
这样?
to_char是把字符转数字
abs是算绝对值
这样:select to_number('123') from dual
oracle没有显示的INT型,你直接定义成number就好,强制类型转换函数都差不多,转换为日期型就是TO_DATE(),
转换为数字就是TO_NUM(),转换为字符就是TO_CHAR(),括号中跟需要转换的内容,日期型注意格式掩码。
扩展资料:
注意事项
CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。
这个类型 可以是以下值其中的 一个:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]
所以也可以用CAST解决问题:
select server_id from cardserver where game_id = 1 order by CAST(server_id as SIGNED) desc limit 10
也可以使用CONVERT来搞定此问题:
select server_id from cardserver where game_id = 1 order by CONVERT(server_id,SIGNED) desc limit 10
1.将字符串类型转换为数字类型。此方法使用tonumber()直接转换。具体语法是tonumber(STR)。
2.将数字类型转换为字符串类型。此转换使用to_char(),这有点像上面的to_number()模式。999代表相同的内容。
3.将日期类型转换为字符串类型。实际上,此方法还使用到ˊchar(),它将日期格式转换为所需的格式类型。这种方法更加个性化。
4.下面的代码将日期类型转换为公共字符串类型,这是一种更常见、更完整的字符串格式。
5.将字符串类型转换为日期类型。此转换方法使用to_date()。用法也相对简单,转换后的日期格式也是自定义的。
6.完成效果图。
可以用 to_number(字符串) 来实现转换。不过如果这个字符串如果包含其他不是数字的字符的话,会报错,所以你先需要保证数据是数字。
建议你优化一下你的sql,你完全可以不用子查询将那4个表都扫描两遍(等到你数量巨大,效率会很低,你要在开发阶段避免这种情况的发生),你看一下oracle的LAG()和LEAD()统计函数,它可以在一次查询中取出同一字段的前N行的数据和后N行的值
你的s.status_name字段里是不是字符和数字都有啊,你贴一下,看看有什么规律
给你个例子
create table a (id number,name varchar2(10));
insert into a values (1,'aa');
insert into a values (2,'bb');
insert into a values (3,'cc');
cimmit;
取当前行的前一行数据
select id,name,lag(id,1)over(order by id),lag(name,1)over(order by id) from a where id in (2,3);
取当前行的后一行数据
select id,name,lead(id,1)over(order by id),lead(name,1)over(order by id) from a where id in (2,3);
这个a表的id不就相当于你的l.location_id吗?
用nvl函数吧,nvl(xxx,0)------如果为空的话就为0(当然你也可以用其他数字或者字符来表示),不是空的话,就直接显示xxx,
to_number(nvl(xxx,0))--------完整就这么用,为空时就显示0