易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle字符串字段内的字符排序

这个是狙狙的sql解法。
http://blog.csdn.net/happyflystone/archive/2009/01/17/3819863.aspx
引用需求
今天和梁翁在群里聊天,小家伙突然抛出一个有意思的问题,那就是字符串字段内的字符串排序问题,比如有列 col, 有数据 'RDGS' , 要求输出为 'DGRS' 。
--------------------------------------------------------------------------------
oracle分析函数支持聚合:)
create table t_test(f varchar2 ( 10 ));
insert into t_test values ( 'sdffesa' );
insert into t_test values ( 'asdflkj' );
insert into t_test values ( 'ijf92' );
 
 
select f, max ( replace (SYS_CONNECT_BY_PATH(c, ' ' ), ' ' , '' ))f1 from (
select f,rn,c,row_number()over( partition by f order by c) as ord from ( select
f,decode(rn,
1 ,substr(f, 1 , 1 ),
2 ,substr(f, 2 , 1 ),
3 ,substr(f, 3 , 1 ),
4 ,substr(f, 4 , 1 ),
5 ,substr(f, 5 , 1 ),
6 ,substr(f, 6 , 1 ),
7 ,substr(f, 7 , 1 ),
8 ,substr(f, 8 , 1 ),
9 ,substr(f, 9 , 1 ),
10 ,substr(f, 10 , 1 )
) as c,rn from
t_test a ,(
select level rn from dual connect by 1 = 1 and level <= 10 )b
where length(a.f)>=b.rn))
start with ord= 1 connect by f= prior f and ord- 1 = prior ord
group by f;
 
drop table t_test;
 
/*
F     F1
ijf92 29fij
asdflkj     adfjkls
sdffesa     adeffss
*/
--------------------------------------------------------------------------------
后来受到小梁的启发,修改了一下拆分字符串的方法,可以把decode去掉
-- 测试环境
create table t_test(f varchar2 ( 10 ));
insert into t_test values ( 'sdffesa' );
insert into t_test values ( 'asdflkj' );
insert into t_test values ( 'ijf92' );
 
-- 测试字符串的拆分
select
f,substr(f,rn, 1 ) as c from
t_test a ,(
select level rn from dual connect by 1 = 1 and level <= 10 )b
where length(a.f)>=b.rn order by f;
 
/*
F     C
asdflkj     a
asdflkj     f
asdflkj &n


相关文档:

ORACLE sql语句笔记

windows上存在32bit的限制,如AIX、HP UNIX 等有明确的64BIT OS and ORACLE的版本,32bit oracle可以装在64bit os 上,64 bit oracle不能装在32 bit OS上
oracle是64bit or 32 bit,32bit 通常 SGA有 1.7G 的限制(某些OS的处理或者WINDOWS上有特定设定可以支持到2G以上甚至达到3.7G
如何查出前台正在发出的sql语句:
sele ......

MySQL与Oracle数据类型转换


MySQL Data Type
Oracle Data Type
BIGINT
NUMBER(19, 0)
BIT
RAW
BLOB
BLOB, RAW
CHAR
CHAR
DATE
DATE
DATETIME
DATE
DECIMAL
FLOAT (24)
DOUBLE
FLOAT (24)
DOUBLE PRECISION
FLOAT (24)
ENUM
VARCHAR2
FLOAT
FLOAT
INT
NUMBER(10, 0)
INTEGER
NUMBER(10, 0)
LONGBLOB
BLOB, RAW
LONGTEX ......

mysql,sqlserver,oracle三种数据库的大对象存取

mysql 大对象存取:
  类型一般应该用mediumblod,
  blob只能存2的16次方个byte,
  mediumblod是24次方,
  一般来说够用了.longblob是32次方有些大.
  MYSQL默认配置只能存1M大小的文件,要修改配置,WIN版本的在mysql.ini文件中
  修改max_allowed_packet,net_buffer_length等几个参数,或直接SET GLOBAL va ......

SQLServer和Oracle的常用函数对比

SQLServer和Oracle的常用函数对比
  1.绝对值
  S:select abs(-1) value
  O:select abs(-1) value from dual
  2.取整(大)
  S:select ceiling(-1.001) value
  O:select ceil(-1.001) value from dual
  3.取整(小)
  S:select floor(-1.001) value
  O:select floor(-1.001) valu ......

关于oracle导入sqlserver存在的唯一索引问题

我在把oracle数据导入sqlserver中时,发现在oracle中字段定义为唯一索引时,不同记录的此字段如果为空不被认为是重复的,但在sqlserver中如果此字段为唯一索引字段,不允许有2个以上的空值。郁闷。所以只好将sqlserver中的唯一索引字段手工修改为几个非空的值,但这样程序肯定要进行修改了。需要在程序中为此字段设置不重复 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号