1.有些情况需要将几条记录按要求排序,适用于少量要求

表如图所示:

按照e,u,r,o,t,w,q,y,i顺序排序:

 1 SELECT
2 *
3 FROM
4 LGQ_TEST
5 ORDER BY
6 (
7 CASE
8
9 WHEN s = 'e' THEN
10 1
11 WHEN S = 'u' THEN
12 2
13 WHEN S = 'r' THEN
14 3
15 WHEN S = 'o' THEN
16 4
17 WHEN S = 't' THEN
18 5
19 WHEN S = 'W' THEN
20 6
21 WHEN S = 'q' THEN
22 7
23 WHEN S = 'y' THEN
24 8
25 WHEN S = 'i' THEN
26 9 ELSE 0
27 END
28 )

2.递归查询(递归子孙和递归祖先)

 1 -- 递归子孙
2 SELECT
3 pur.CODE
4 FROM
5 PUB_REGION pur START WITH pur.CODE = '370000000000' CONNECT BY PRIOR pur.CODE = pur.PARENT_CODE
6
7 -- 递归祖先
8 SELECT
9 pur.CODE
10 FROM
11 PUB_REGION pur START WITH pur.CODE = '370100000000' CONNECT BY PRIOR pur.PARENT_CODE=pur.CODE

3.异常:ORA-01747: user.table.column, table.column 或列说明无效

因为用了oracle关键字

4.将用逗号隔开的字符串转成in条件

SELECT
regexp_substr( TO_CHAR( 'id1,id2,id3' ), '[^,]+', 1, LEVEL )
FROM
dual CONNECT BY regexp_substr( TO_CHAR( 'id1,id2,id3' ), '[^,]+', 1, LEVEL ) IS NOT NULL

结果为:

 1 --使用
2 SELECT
3 *
4 FROM
5 TABLE
6 WHERE
7 TABLE.ID IN (
8 SELECT
9 regexp_substr( TO_CHAR( 'id1,id2,id3' ), '[^,]+', 1, LEVEL )
10 FROM
11 dual CONNECT BY regexp_substr( TO_CHAR( 'id1,id2,id3' ), '[^,]+', 1, LEVEL ) IS NOT NULL)

5.用自定义符号连接表中某字段,函数LISTAGG()

这个例子是吧这个表中所有记录的id用--连接起来

1 SELECT
2 LISTAGG(PI.ID,'--') WITHIN GROUP(ORDER BY PI.ID DESC) AS STR
3 FROM
4 PROJECT_INFO PI
5 WHERE
6 1=1

结果为:

ORACLE--SQL日常问题和技巧2(自定义排序,递归查询,异常ORA-01747,逗号隔开的字符串转成in条件,用符号连接表中某字段)的更多相关文章

  1. oracle的order by decode根据文字自定义排序的例子

    oracle的order by decode根据文字自定义排序的例子: order by decode(t.title, '当前生效预警', 1, '今日即将生效', 2, '明日预计生效', 3, ...

  2. 使用SQL如何把用逗号等字符隔开的字符串转换成列表(转)

    如何把用逗号等字符隔开的字符串转换成列表,下面依逗号分隔符为例: 比如有一个字符串,其值为:香港,张家港,北京,上海用SQL把这个字符串转换成列表的方法是: 1.方法一 WITH A AS (SELE ...

  3. Oracle中的自连接(self join)-当表中的某一个字段与这个表中另外字段的相关时,我们可能用到自连接。

    http://blog.163.com/wkyuyang_001/blog/static/10802122820091751049479/ 当表中的某一个字段与这个表中另外字段的相关时,我们可能用到自 ...

  4. Oracle中使用游标转换数据表中指定字段内容格式(拼音转数字)

    应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create ...

  5. 在oracle表中增加字段,并调整字段的顺序

    增加字段的语句很简单,以用户身份连接oracle服务: alter table tablename add(colname coltype); # 填上表名.字段名.字段类型 修改字段顺序前,查看表中 ...

  6. SQL查询一个表中类别字段中Max()最大值对应的记录

      SQL查询一个表中类别字段中Max()最大值对应的记录 SELECT A.id, A.name, A.version FROM   DOC A, (SELECT id, MAX(version)  ...

  7. 删除表中一个字段的SQL语句

    1.删除没有默认值的列:alter table Test drop COLUMN BazaarType 2.删除有默认值的列:先删除约束(默认值)alter table Test DROP CONST ...

  8. Oracle 实现表中id字段自增长

    Oracle 实现表中id字段自增长 最近正在学习Oracle的时候发现Oracle表中的字段不能像mysql中那样可以用auto increment修饰字段从而让id这种主键字段实现自增长. 那Or ...

  9. resultMap自定义映射---8.3.1. 解决列名(表中的字段名称)和实体类中的属性名不一致

    1.1.1.1.      步骤一:将驼峰匹配注释掉 --------------测试完成后仍然 回来开启  其他地方可能用到 一旦注释掉驼峰匹配,那么再通过queryUserById查询的结果中,用 ...

  10. Oracle SQL Lesson (3) - 使用单行函数自定义输出

    大小写转换函数LOWER('SQL Course') = sql courseUPPER('SQL Course') = SQL COURSEINITCAP('SQL Course') = Sql C ...

随机推荐

  1. pnpm create vite my-react-app --template react-ts

    npm install -D pnpm npm install -D vite pnpm create vite my-react-app --template react-ts npx vite - ...

  2. Python简单数据分析

    1.分析思路 以贵族价格表为例 a.使用Python连接MySQL数据库 b.从noble_right表查询贵族名称,开通价格 c.将这两组值作为XY轴绘制直方图 2.编写代码: # -*- codi ...

  3. QT 可绑定属性 QProperty QObjectBindableProperty QObjectComputedProperty,简化信号、槽(SIGNAL、SLOT)机制的方法

    QT提供的可绑定属性是指这些属性可以绑定到其他值或表达式上(通常是 C++ lambda 表达式).如果属性是通过表达式进行绑定,该属性会跟随表达式自动更新.可绑定属性由 QProperty 类和 Q ...

  4. Semaphore.release()方法的底层原理

    一.release() 方法代码解析 当调用 release() 方法时,实际调用的是 AQS 的 releaseShared(1) 方法.以下是其详细工作流程: public final boole ...

  5. 配置Thymeleaf模板引擎

    1).thymeleaf-starter: 关闭缓存 2).静态资源都放在static文件夹下就可以按照路径直接访问 3).页面放在templates下,直接访问 springboot ,访问项目的时 ...

  6. CF1546B题解

    看了题面,一道简单的假交互题 题目传送门,另一个传送门 读好题目很重要 AquaMoon 有 nnn 个长度为 mmm 的字符串,其中 nnn 是奇数. 然后她选取 n−1n-1n−1 个字符串,将它 ...

  7. 代码随想录第七天 | Leecode 454.四数相加II 、383. 赎金信 、15. 三数之和 、18. 四数之和

    Leecode 454. 四数相加II 题目链接:https://leetcode.cn/problems/4sum-ii/ 题目描述 给你四个整数数组 nums1.nums2.nums3 和 num ...

  8. T+常用数据表参考

    AA_表 基础档案     AA_Partner  客户   EAP_表    设置表 ST_表  库存 SA_表  销售 PU_表  采购     销售订单 销货单表 SA_SaleDelivery ...

  9. vue3 基础-样式绑定语法

    本篇讲 vue 通过数据去进行 dom 样式的绑定操作, 主要分为 字符串, 数组, 对象等方式, 这个非常好理解, 凭着我们朴素的情感就能一步领悟到位的, 就还是演示一段吧. 字符 & 数组 ...

  10. 操作系统:linux -- 虚拟文件系统如何管理文件

    本节来瞧下Linux是如何管理文件,也验证下Linux那句口号:一切皆文件 为此,我们需要首先搞清楚什么是 VFS,接着理清为了实现 VFS 所用到的数据结构,然后看看一个文件的打开.读写.关闭的过程 ...