1.问题1 执行下列SQL: sql = "select count(1) as totle from vhl_model_data a where a.OBTAIN_CREATE_TIME between to_date(?,'yyyymmsshh24mi') and to_date(?,'yyyymmsshh24mi');"; Oracle报“无效数字异常”:经过两个钟头的反复的检查,发现是由于自己粗心在上述语句结尾多写了个分号“;”导致.粗心害死人啊!真是囧! 2.问题2 ORA
Oracle比较字符串是根据ASCII码来的,第一个字母的ASCII大小比较如果相等再比较下一个,类推.字符串和数字进行操作是会报异常的,因为类型不一样不能进行比较. Oracle在执行SQL的时候有些时候会自动转换,比如:select * from chan_customer cc where cc.customer_id = '1';即使customer_id是数字型的也可以查出来,但是Oracle有区分字符和数字就是通过加不加单引号来区分. 为了验证oracle里字符串比较是按ascii码
不说废话,贴代码: CREATE OR REPLACE FUNCTION to_time(sec IN NUMBER) RETURN VARCHAR2 IS /*把秒转成时分秒格式 auth lzpong 201/09/16 */ BEGIN ))), ,); EXCEPTION WHEN OTHERS THEN RETURN '0:00:00'; END to_time; CREATE OR REPLACE FUNCTION isnumeric(str IN VARCHAR2) RETURN
在SQL中取出字符串中数字部分或在SQL中取出字符部分 编写人:CC阿爸 2013-10-18 近来在开发一个项目时,一包含数字的字符串,需要取出中间的数字部分进行排序.经过baidu搜索.并结合自己项目的需求,编写了一个自定义的SQL函数用供项目中使用. /****** Object: UserDefinedFunction [dbo].[F_Get_No] Script Date: 10/18/2013 22:03:13 ******/ SET ANSI_NULLS ON GO SET QU
SQL> create user scan identified by scan default tablespace users; User created. SQL> grant dba to scan; Grant succeeded. create table t1 (id char(10) primary key,a1 char(10),a2 char(10)); begin for i in 1 .. 25 loop insert into t1 values(i,i,'a'||i
今天做项目的时候,遇到个小小的问题,在数据库中查询的时候,要用String类型的ID进行一下排序!(注:ID字段为 varchar 类型) 解决的方法: 如: SELECT * FROM Student WHERE 1 = 1 ORDER BY -ID DESC 或者: SELECT * FROM Student WHERE 1 = 1 ORDER BY (ID + 1) mysql时间格式化,按时间段查询MYSQL语句 2011-04-15 09:01:08| 分类: MySQL |
SQL限制和排序数据 1.Oracle的Where条件值,字符串和日期都必须以单引号括起来. 模糊查询: like 'S%' 以S开头的任意字符 like 'S_' 以S开头的任意字符结尾的两个字符 like '_o%' 查找第二个字符是以O的字符串 _.%都是通配符,如果想将通配符转意成一般字符必须用到 ESCAPE 来定义转意字符例: select * from employees where JOB_ID like 'SH\_%' ESCAPE '\'; 2.排序 Oracle除了可以使用
拼音排序的规则: 字符串包括特殊字符.数字.英文字符.中文字符等等,排序结果要求,特殊字符排在第一梯队,将其按照首个字符ascii码表进行排序,数字字符排在第二梯队,将首个字符数字按照数字大小排序,英文字符排在第三梯队,按照首字母字母表顺序排序,中文字符排在第三梯队,将按照拼音的首字母排序 .(此处不考虑其他语言的字符). 数据库查询排序: 查询数据库的时候可以将某个字段按照中文排序.如下,将查询结果以name字段排序 SELECT name FROM crm.b_user where name