社区
Oracle
帖子详情
ORACLE中怎样比较VARCHAR2数值
isobelar
2010-01-21 10:48:49
请问在ORACLE中有什么办法能不用TO_NUMBER()函数对VARCHAR2类型的数值(FLOAT型)按大小进行排序?
有谁知道的请将办法告诉我,有帮助的一定加分,在线等...
...全文
980
16
打赏
收藏
ORACLE中怎样比较VARCHAR2数值
请问在ORACLE中有什么办法能不用TO_NUMBER()函数对VARCHAR2类型的数值(FLOAT型)按大小进行排序? 有谁知道的请将办法告诉我,有帮助的一定加分,在线等...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tangren
2010-01-21
打赏
举报
回复
oracle编程,当然是可以的,通过写存储过程来解决。
搜一下oracle存储过程的资料吧
如:
http://tech.it168.com/a2009/0305/267/000000267674.shtml
isobelar
2010-01-21
打赏
举报
回复
就是,有没有什么办法在ORACLE里面进行编程?
wuyisky84
2010-01-21
打赏
举报
回复
plsql 中不能使用函数?? 那你应该解决系统的问题
wuyisky84
2010-01-21
打赏
举报
回复
先比较整数部分,在根据情况比较小数部分
比较整数部分的长度,首位非零长度大的大
在直接按照字符串比较大小
测试一下,应该能够找到方案
isobelar
2010-01-21
打赏
举报
回复
你说的办法的确可以,但是SQL语句里面不能用函数。这事系统的问题,我就是卡在这里了。
tangren
2010-01-21
打赏
举报
回复
可以转换成相同长度再排序
如:
create table test(col varchar2(10));
select * from test order by lpad(col,10,'0');
huangyunzeng2008
2010-01-21
打赏
举报
回复
是这样的,如果不考虑性能或其他意外情况,oracle会尽量来满足用户的期望操作,前提是要给出能让oracle帮你完成的数据,你给的这个串首先要是个小数,否则oracle无能为力了
duqiangcise
2010-01-21
打赏
举报
回复
SQL> select '88'-'77' from dual;
'88'-'77'
----------
11
如果不用to_number函数,只要你的varchar2能够在转换成number的前提下,oracle是会自动转型的。
isobelar
2010-01-21
打赏
举报
回复
不是专门针对ORACLE数据库的自定义标签。
crazylaa
2010-01-21
打赏
举报
回复
[Quote=引用 12 楼 isobelar 的回复:]
呵呵!这可能是底层的问题了。我的SQL语句是通过标签传到后台的。底层不能识别TO_NUMBER()函数。
[/Quote]
标签不认函数,汗。。。应该不存在啊。。。
isobelar
2010-01-21
打赏
举报
回复
呵呵!这可能是底层的问题了。我的SQL语句是通过标签传到后台的。底层不能识别TO_NUMBER()函数。
crazylaa
2010-01-21
打赏
举报
回复
[Quote=引用 2 楼 isobelar 的回复:]
你说的办法的确可以,但是SQL语句里面不能用函数。这事系统的问题,我就是卡在这里了。
[/Quote]
什么系统啊?不能用函数,那你的统计怎么办?
varchar2的数值比较一般要格式化成固定长度,小数点前后补齐的
小灰狼W
2010-01-21
打赏
举报
回复
最简单而且有效的还是to_number
另外float数值要进行数字比较,本来就应该存在varchar2类型的字段里
不用to_number的话就需要对比较的对象进行转换,转成和前者长度相等,小数位数相同的字符串来比较
jdsnhan
2010-01-21
打赏
举报
回复
为啥不能用to_number呢
isobelar
2010-01-21
打赏
举报
回复
直接比较式按照字符串从左向右进行比较的,会出现300>10000
ojuju10
2010-01-21
打赏
举报
回复
不能直接比较吗?
Oracle
内置SQL函数-分类整理大全
这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回
VARCHAR
2类型的
数值
.字符函数的返回类型所受的限制和基本数据库类型所受的限制是相同的,比如:
VARCHAR
2
数值
被限制为2000字符(
ORACLE
8
中
为4000字符),而CHAR
数值
被限制为255字符(在
ORACLE
8
中
是2000).当在过程性语句
中
使用时,它们可以被赋值给
VARCHAR
2或者CHAR类型的PL/SQL变量.
oracle
监控某表变动触发器例子(监控增,删,改)
使用
oracle
触发器 实现对某个表的增改删的监控操作,并记录到另一个表
中
。 代码: 代码如下:create or replace trigger test_trigger before insert or update or delete on test_table for each row declare v_id
varchar
2(30); v_bdlb
varchar
2(1); v_jgdm
VARCHAR
2(12); v_jgmc
VARCHAR
2(60); v_gajgmc
VARCHAR
MySQL 数据类型和运算符
Re: MySQL 数据类型和运算符=============================# 数据类型 整数类型:五种 TINY SMALL MEDIUM INT BIG 浮点和定点小数类型:三种 FLOAT DOUBLE DECIMAL 日期与时间数据类型:五种 YEAR -1 字符串类型:二种 CHAR(M)
VARCHAR
(M) -1 二进制字符串:位字段BIT 固定BINARY 可变VARBINARY -1 # 运算符 算术 运算符
比较
运算符 逻辑 运算符 位操作 运算符 运算符的优先级-------------------------------------
Oracle
自定义判断数据是否为
数值
函数
1 CREATE OR REPLACE FUNCTION isnumeric (str IN
VARCHAR
2) 2 RETURN NUMBER 3 IS 4 v_str
VARCHAR
2 (1000); 5 BEGIN 6 IF str IS NULL 7 THEN 8 RETURN 0; 9 ELSE 10 v_str := translate(str, '.0123456789', '.'); 11 12 IF v_str = '.' OR v_str = '+.' OR v_str
ORACLE
常用SQL命令.pdf
命令行工具基本操作及 SQL 命令 1. 基本概念 1.1.数据类型 基本数据类型(NUMBER,
VARCHAR
2,DATE) O RACEL 支持下列内部数据类型:
VARCHAR
2 变长字符串,最长为 2000 字符。 NUMBER
数值
型。 LONG 变长字符数据,最长为 2G 字节。 DATE 日期型。 RAW 二进制数据,最长为 255 字节。
Oracle
17,086
社区成员
55,238
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章