6个回答
展开全部
你说的中文数字应该是字符一、二、三……吧?这是字符判断转为数字,可以用DECODE和CASE WHEN 来解决。如:
select decode(table_column,'一',1,'二',2,'三',3,'四',4,'五',5,'六',6,'七',7,'八',8,'九',9,'零',0,'') from (select '六' as table_column from dual) your_table;
select case when table_column = '一' then 1
when table_column = '二' then 2
when table_column = '三' then 3
when table_column = '四' then 4
when table_column = '五' then 5
when table_column = '六' then 6
when table_column = '七' then 7
when table_column = '八' then 8
when table_column = '九' then 9
when table_column = '零' then 0
else null end
from (select '六' as table_column from dual) your_table;
select decode(table_column,'一',1,'二',2,'三',3,'四',4,'五',5,'六',6,'七',7,'八',8,'九',9,'零',0,'') from (select '六' as table_column from dual) your_table;
select case when table_column = '一' then 1
when table_column = '二' then 2
when table_column = '三' then 3
when table_column = '四' then 4
when table_column = '五' then 5
when table_column = '六' then 6
when table_column = '七' then 7
when table_column = '八' then 8
when table_column = '九' then 9
when table_column = '零' then 0
else null end
from (select '六' as table_column from dual) your_table;
更多追问追答
追问
是这样,但是还有单位的,比如一万三千五。八百六十七,五万,有没有可以自动识别的函数、存储过程啥的?
追答
没有,只能自己写个函数了
展开全部
如果你的X字段是字符串"12345"等纯数字可以使用:
select convert(int,X) from 表
有计算可以直接在查询的时候计算如:
select convert(int,X)*convert(int,X)+convert(int,x)-convert(int,X) from 表
select convert(int,X) from 表
有计算可以直接在查询的时候计算如:
select convert(int,X)*convert(int,X)+convert(int,x)-convert(int,X) from 表
更多追问追答
追问
不是纯数字。把中文字符型数字【一二三四五六七八九十千百】换成1234567890的
追答
那也简单,建立一个自定义函数进行转换
你的最大数是多少?比如:十亿数位
我试着帮你写写
比如函数名:Myfun
你查询的时候只要:select Myfun([字段名]) from 表名 就可以了
这个函数不好写,需要很多分支,比如十万零十
你就要判断他应该添加几个0,在什么位置添加0
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从表格中导出的地址栏目中的405和数字405是不一样的,这个如何更改?我一般采用0替代成0,3替代成3,以此类推,一般要代替十次,有些太麻烦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
convert(numeric(18,0),字段)
追问
能解释一下么?我是菜鸟。这个函数没用过。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询