| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Oracle查询结果根据in中的数据排序 -> 正文阅读 |
|
[大数据]Oracle查询结果根据in中的数据排序 |
遇到个SQL问题,查询单条数据:希望的结果为: 即俩字段中数据位置需要一一对应(id为几,就对应几号)。
但实际的结果为: 俩字段中id和name的位置对应不上
具体SQL如下所示:(出问题的位置标红了) select 这sql有点绕,根据实际查询单独理解下填红字部分其实就是下面这个样子 这段SQL就是根据in关键字里面的id去查询对应的name,name虽然查出来了,但name结果却不是按照3,5,4,2,1,6这么排序的,导致列转行后,name和id的位置对应不上,解决方法就是让这段sql查出来的name结果集,根据3,5,4,2,1,6这个顺序排就可以了,所以改一下这段sql中的order by关键字,换成order by?INSTR(字符串,排序字段),字符串为in里面的数据 SELECT? ? ? listagg (name, ',') WITHIN GROUP (order by name) name FROM ? ? asmis_check_item WHERE ? ? item_id in?(3,5,4,2,1,6) 修改后为: SELECT? ? ? listagg (name, ',') WITHIN GROUP (order by INSTR(‘3,5,4,2,1,6’,id)) name FROM ? ? asmis_check_item WHERE ? ? item_id in?(3,5,4,2,1,6) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 13:35:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |