字符两两反转 比如 23452145转成 45214523

奋斗小青年 2014-03-19 01:17:01
字符两两反转 比如 23452145转成 45214523 像这样的转换 oracle和mysql有自带的函数吗?求帮助
...全文
295 15 打赏 收藏 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
流浪川 2014-03-20
  • 打赏
  • 举报
回复
引用 14 楼 wanyuan19890515 的回复:
[quote=引用 13 楼 hidanger521 的回复:] [quote=引用 12 楼 wanyuan19890515 的回复:] mysql 不支持connect by 坑爹 [quote=引用 11 楼 hidanger521 的回复:]
CREATE OR REPLACE FUNCTION FUC_TURN_STR(SOURCE_STR IN VARCHAR2)
  RETURN VARCHAR2 IS
  TARGET_STR VARCHAR2(4000);
BEGIN
  SELECT REPLACE(WMSYS.WM_CONCAT(A), ',', '')
    INTO TARGET_STR
    FROM (SELECT SUBSTR(SOURCE_STR,
                        LENGTH(SOURCE_STR) - (ROWNUM - 1) * 2 - 1,
                        2) A
            FROM DUAL
          CONNECT BY ROWNUM <= LENGTH(SOURCE_STR) / 2);
  RETURN(TARGET_STR);
END FUC_TURN_STR;
最终答案哈,呵呵,用这个吧,好理解一点。。
[/quote] 这个我就没办法了,mysql基本上没用过。。[/quote] 有没有简单一点的sql [/quote] 我尽力了亲,这个sql不算复杂了啊。。
奋斗小青年 2014-03-20
  • 打赏
  • 举报
回复
引用 13 楼 hidanger521 的回复:
[quote=引用 12 楼 wanyuan19890515 的回复:] mysql 不支持connect by 坑爹 [quote=引用 11 楼 hidanger521 的回复:]
CREATE OR REPLACE FUNCTION FUC_TURN_STR(SOURCE_STR IN VARCHAR2)
  RETURN VARCHAR2 IS
  TARGET_STR VARCHAR2(4000);
BEGIN
  SELECT REPLACE(WMSYS.WM_CONCAT(A), ',', '')
    INTO TARGET_STR
    FROM (SELECT SUBSTR(SOURCE_STR,
                        LENGTH(SOURCE_STR) - (ROWNUM - 1) * 2 - 1,
                        2) A
            FROM DUAL
          CONNECT BY ROWNUM <= LENGTH(SOURCE_STR) / 2);
  RETURN(TARGET_STR);
END FUC_TURN_STR;
最终答案哈,呵呵,用这个吧,好理解一点。。
[/quote] 这个我就没办法了,mysql基本上没用过。。[/quote] 有没有简单一点的sql
流浪川 2014-03-19
  • 打赏
  • 举报
回复
引用 12 楼 wanyuan19890515 的回复:
mysql 不支持connect by 坑爹 [quote=引用 11 楼 hidanger521 的回复:]
CREATE OR REPLACE FUNCTION FUC_TURN_STR(SOURCE_STR IN VARCHAR2)
  RETURN VARCHAR2 IS
  TARGET_STR VARCHAR2(4000);
BEGIN
  SELECT REPLACE(WMSYS.WM_CONCAT(A), ',', '')
    INTO TARGET_STR
    FROM (SELECT SUBSTR(SOURCE_STR,
                        LENGTH(SOURCE_STR) - (ROWNUM - 1) * 2 - 1,
                        2) A
            FROM DUAL
          CONNECT BY ROWNUM <= LENGTH(SOURCE_STR) / 2);
  RETURN(TARGET_STR);
END FUC_TURN_STR;
最终答案哈,呵呵,用这个吧,好理解一点。。
[/quote] 这个我就没办法了,mysql基本上没用过。。
奋斗小青年 2014-03-19
  • 打赏
  • 举报
回复
mysql 不支持connect by 坑爹
引用 11 楼 hidanger521 的回复:
CREATE OR REPLACE FUNCTION FUC_TURN_STR(SOURCE_STR IN VARCHAR2)
  RETURN VARCHAR2 IS
  TARGET_STR VARCHAR2(4000);
BEGIN
  SELECT REPLACE(WMSYS.WM_CONCAT(A), ',', '')
    INTO TARGET_STR
    FROM (SELECT SUBSTR(SOURCE_STR,
                        LENGTH(SOURCE_STR) - (ROWNUM - 1) * 2 - 1,
                        2) A
            FROM DUAL
          CONNECT BY ROWNUM <= LENGTH(SOURCE_STR) / 2);
  RETURN(TARGET_STR);
END FUC_TURN_STR;
最终答案哈,呵呵,用这个吧,好理解一点。。
流浪川 2014-03-19
  • 打赏
  • 举报
回复
CREATE OR REPLACE FUNCTION FUC_TURN_STR(SOURCE_STR IN VARCHAR2)
  RETURN VARCHAR2 IS
  TARGET_STR VARCHAR2(4000);
BEGIN
  SELECT REPLACE(WMSYS.WM_CONCAT(A), ',', '')
    INTO TARGET_STR
    FROM (SELECT SUBSTR(SOURCE_STR,
                        LENGTH(SOURCE_STR) - (ROWNUM - 1) * 2 - 1,
                        2) A
            FROM DUAL
          CONNECT BY ROWNUM <= LENGTH(SOURCE_STR) / 2);
  RETURN(TARGET_STR);
END FUC_TURN_STR;
最终答案哈,呵呵,用这个吧,好理解一点。。
流浪川 2014-03-19
  • 打赏
  • 举报
回复
引用 9 楼 wanyuan19890515 的回复:
不会出现单数 [quote=引用 8 楼 hidanger521 的回复:] [quote=引用 7 楼 wanyuan19890515 的回复:] 这个不对啊 1245DFDF 转成 这样 DFDF4512
啊,理解错了,那如果出现单数怎么办啊?[/quote][/quote]

CREATE OR REPLACE FUNCTION FUC_TURN_STR(SOURCE_STR IN VARCHAR2)
  RETURN VARCHAR2 IS
  TARGET_STR VARCHAR2(4000);
BEGIN
  SELECT REPLACE(WMSYS.WM_CONCAT(A), ',', '')
    INTO TARGET_STR
    FROM (SELECT SUBSTR(SOURCE_STR,
                        LENGTH(SOURCE_STR) - (ROWNUM - 1) * 2 + 1,
                        2) A
            FROM DUAL
          CONNECT BY ROWNUM <= LENGTH(SOURCE_STR) / 2 + 1);
  RETURN(TARGET_STR);
END FUC_TURN_STR;
你要确定哈,否者结果可能会有差别
奋斗小青年 2014-03-19
  • 打赏
  • 举报
回复
不会出现单数
引用 8 楼 hidanger521 的回复:
[quote=引用 7 楼 wanyuan19890515 的回复:] 这个不对啊 1245DFDF 转成 这样 DFDF4512
啊,理解错了,那如果出现单数怎么办啊?[/quote]
流浪川 2014-03-19
  • 打赏
  • 举报
回复
引用 7 楼 wanyuan19890515 的回复:
这个不对啊 1245DFDF 转成 这样 DFDF4512
啊,理解错了,那如果出现单数怎么办啊?
奋斗小青年 2014-03-19
  • 打赏
  • 举报
回复
这个不对啊 1245DFDF 转成 这样 DFDF4512
流浪川 2014-03-19
  • 打赏
  • 举报
回复
CREATE OR REPLACE FUNCTION FUC_TURN_STR(SOURCE_STR IN VARCHAR2)
  RETURN VARCHAR2 IS
  TARGET_STR VARCHAR2(4000);
BEGIN
  SELECT REPLACE(WMSYS.WM_CONCAT(SUBSTR(A, 2, 1) || SUBSTR(A, 1, 1)),
                 ',',
                 '')
    INTO TARGET_STR
    FROM (SELECT SUBSTR(SOURCE_STR, (ROWNUM - 1) * 2 + 1, 2) A
            FROM DUAL
          CONNECT BY ROWNUM <= LENGTH(SOURCE_STR) / 2 + 1);
  RETURN(TARGET_STR);
END FUC_TURN_STR;

SQL> SELECT FUC_TURN_STR('1245DFDF') T FROM DUAL;

T
----------------------------------
2154FDFD
流浪川 2014-03-19
  • 打赏
  • 举报
回复
引用 4 楼 wanyuan19890515 的回复:
这方法还可以简化点不
和你讲讲原理哈,肯定要这个过程啊,你说迭代肯定要有吧。换位置肯定要有吧,换完位置还得拼接好吧。 所以呢,我认为呢不能,要不我给你封到函数里面,你直接调用得了。。
奋斗小青年 2014-03-19
  • 打赏
  • 举报
回复
这方法还可以简化点不
流浪川 2014-03-19
  • 打赏
  • 举报
回复
引用 2 楼 wanyuan19890515 的回复:
现在这边已经套了几层了,主要是想简单一点.有相关的函数可以用么?或者高效点的
没有现成,这个效率不会差啊,自定义一个函数被。。你可以试试。
奋斗小青年 2014-03-19
  • 打赏
  • 举报
回复
现在这边已经套了几层了,主要是想简单一点.有相关的函数可以用么?或者高效点的
流浪川 2014-03-19
  • 打赏
  • 举报
回复
引用 楼主 wanyuan19890515 的回复:
字符两两反转 比如 23452145转成 45214523 像这样的转换 oracle和mysql有自带的函数吗?求帮助
SQL行不,不行你把下面的sql放到函数里面封装一下吧。。

SELECT REPLACE(WMSYS.WM_CONCAT(SUBSTR(A, 2, 1) || SUBSTR(A, 1, 1)), ',', '')
  FROM (SELECT SUBSTR('23452145', (ROWNUM - 1) * 2 + 1, 2) A
          FROM DUAL
        CONNECT BY ROWNUM <= LENGTH('23452145') / 2 + 1)
【无人机】采用NOMA的节能多无人机多接入边缘计算(Matlab代码实现)内容概要:本文介绍了采用非正交多址接入(NOMA)技术的节能多无人机多接入边缘计算系统,旨在通过Matlab代码实现来优化无人机在边缘计算环境中的资源分配与能耗。研究聚焦于如何利用NOMA技术提升频谱效率,允许多个用户在同一时间-频率资源上共享通信,并结合边缘计算降低延迟和减轻云端负担。文中详细探讨了系统模型、能效优化算法的设计与实现,包括功率分配、用户调度及任务卸载策略,最终通过仿真验证所提方案的有效性,展示其在减少能耗和提高服务质量方面的优越性能。; 适合人群:具备一定编程基础,熟悉Matlab编程语言,对无线通信、边缘计算或无人机技术有一定了解的研发人员和研究生。; 使用场景及目标:① 无线通信系统中NOMA技术的应用与优化;② 多无人机协同执行任务时的能量管理和计算资源调度;③ 边缘计算环境下任务卸载策略的研究与实现。; 阅读建议:此资源以Matlab代码实现为核心,强调理论与实践相结合,建议读者在学习过程中不仅关注代码实现细节,还需深入理解NOMA的工作原理及其在多无人机系统中的具体应用,同时结合相关文献加深对节能优化算法的理解与掌握。

17,133

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧