varchr2(40) 与 number类型怎么才能判断是否想等?
varchr2(40) 里面也是数字,不知道这两个类型要怎么格式化之后比较?
只判断整数部分是否相同
varchr2(40) 里面也是数字,不知道这两个类型要怎么格式化之后比较?
只判断整数部分是否相同
解决方案 »
- oracle自动重启
- 急救! oracle的问题 !!!
- 32位系统oracle SGA突破1.7G限制
- Oracle 中 如何取得动态的表中的每一列 的值
- 求SQL
- 求Oracle的特殊写法:c1.id = c2.id and c1.id = c3.id and c1.id = c4.id
- 如何通过Oracle实时读取Access中的数据?
- hp-unix下安装oracle9i后,分配给oracle的内存是500M,启动后竟然占到900M?
- 如何查询表中当月的所有记录
- 向oracle 中插入纪录,日期格式由问题,见内
- 如何将 Date 格式化为我们习惯的格式﹖
- 关于行转列 oracle的sql语句 很着急!!!!谢谢!
---------- ----------
1 1.2
2 2
2 2.0
3 3.7SQL> select * from test where id=name; ID NAME
---------- ----------
2 2
2 2.0SQL> select * from test id = to_number(name);
select * from test id = to_number(name)
*
ERROR 位于第 1 行:
ORA-00933: SQL 命令未正确结束
SQL> select * from test where id = to_number(name); ID NAME
---------- ----------
2 2
2 2.0SQL> select * from test where id= trunc(to_number(name)); ID NAME
---------- ----------
1 1.2
2 2
2 2.0
3 3.7SQL>
2 num2,
3 case
4 when decode(instr(num1, '.'),
5 0,
6 num1,
7 substr(num1, 0, instr(num1, '.') - 1)) = trunc(num2) then
8 '=='
9 else
10 '<>'
11 end
12 from t1
13 ;NUM1 NUM2 CASEWHENDECODE(INSTR(NUM1,'.')
------------ --------------------- ------------------------------
3.251201 3 ==
3.251201 3 ==
3.251201 3 ==
354401 3 <>
354401 354401 ==
2 num2,
3 case
4 when trunc(num1) = trunc(num2) then
5 '=='
6 else
7 '<>'
8 end
9 from t1
10 /NUM1 NUM2 CASEWHENTRUNC(NUM1)=TRUNC(NUM2
---------------------------------------- --------------------- ------------------------------
3.251201 3 ==
3.251201 3 ==
3.251201 3 ==
354401 3 <>
354401 354401 ==