字符两两反转 比如 23452145转成 45214523 像这样的转换 oracle和mysql有自带的函数吗?求帮助

解决方案 »

  1.   


    自带肯定没有你这种但是可以组合自带的写你自己的fun
      

  2.   

    哪位大神写个sql 效率高点的 谢谢
      

  3.   

    delimiter $$
    CREATE FUNCTION reverseWord(inputString varchar(100)) RETURNS varchar(100) 
    begin
    declare count int;
    declare returnString varchar(100);
    if(length(inputString)%2 = 0) then
    set count = length(inputString) / 2 ;
    set returnString = '';
    while(count > 0) do
    set returnString = concat(returnString,substring(inputString, 2*count-1 , 2));
    set count = count - 1;
    end while;
    return returnString;
    end if;
    end$$select reverseWord('23452145')
      

  4.   

    上面的输入限制100字符,你可以自己修改varchar(100) 如果输入的字符的数量不是偶数个,执行会报错, 
      

  5.   

    写成一条的sql那种 这边想拿sql完成 不调方法
      

  6.   

    你建立一个方法 建立完了,注意只需要建立一次以后就可以在你所谓的一条sql里面直接调用
    你所谓的mysql自己带的函数也是这么写出来的你标题里面自带也是这样写出来的
      

  7.   

    可以写纯sql么 不封装函数
      

  8.   

    可以写成纯SQL,不过需要一张临时表关联操作,先分解成两个字符,调换后组合起来就可以了,效率需要看数据量大小