Oracle逗号分隔列转行实现方法
来源:asp之家 发布时间:2011-01-04 20:13:00
那么,现在如果给出一个权限编号,要去检索出用后这个权限的用户集合,就会需要在逗号分隔的多个权限编号中去匹配给出的这个权限编号。如果使用like去做,一则效率不高,二则匹配不精确。因此用到了逗号分隔列转行的方法。目前该方法只适合在oracle数据库中使用。该方法只需要sql语句就可以实现列转行。
下面给出该方法的示例:
select a,b,c from
(with test as (select 'aaa' a,'bbb' b,'1,2,3' c from dual)
select a,b,substr(t.ca,instr(t.ca, ',', 1, c.lv) + 1,instr(t.ca, ',', 1, c.lv + 1) - (instr(t.ca, ',', 1, c.lv) + 1)) AS c
from (select a,b,',' || c || ',' AS ca,length(c || ',') - nvl(length(REPLACE(c, ',')), 0) AS cnt FROM test) t,
(select LEVEL lv from dual CONNECT BY LEVEL <= 100) c where c.lv <= t.cnt )
执行以上代码,结果如下图:
模拟数据列 c 中的内容“1,2,3”被转成了三行,前面两列的内容同时附带过去。在实际运用时,只要把
select 'aaa' a,'bbb' b,'1,2,3' c from dual 替换成实际需要转换的数据表中的字段即可,其中c字段必须是要进行转换的保存逗号分隔内容的字段。下面的内容都可以不需要更改。其中“LEVEL <= 100”中的数字100代表匹配字段内容中出现逗号的次数,可以自行更改。
猜你喜欢
- 本文实例讲述了Python使用add_subplot与subplot画子图操作。分享给大家供大家参考,具体如下:子图:就是在一张figure
- 在介绍之前,首先一个概念明确一个共识:没有攻不破的网站,只有值不值得。这意思是说,我们可以尽可能的提高自己网站的安全,但并没有绝对的安全,当
- 使用python爬虫库requests,urllib爬取今日头条街拍美图代码均有注释import re,json,requests,osfr
- //截取字符串长度。支持utf-8和gb2312编码。若为gb2312,先将其转为utf-8,在utf-8的基础上截取然后再转换回来 fun
- 环境搭建python 3.xrequests 包re 包gooey包 (用于可视化)代码import requestsimport reim
- 本文实例讲述了Python实现多并发访问网站功能。分享给大家供大家参考,具体如下:# Filename:visitweb_threads.p
- 编号标准宗地编码(landCode)所在区段编码(sectCode)1131001BG001G0012131001BG002G0013131
- 下载GPL版本安装MySQL Community Edition(GPL)Community (GPL) Downloads &ra
- 下面是十个Python中很有用的贴士和技巧。其中一些是初学这门语言常常会犯的错误。注意:假设我们都用的是Python 31. 列表推导式你有
- 本文实例讲述了JS实现匀加速与匀减速运动的方法。分享给大家供大家参考,具体如下:/* * 动画帧函数 * * */ var re
- 不同的是setInterval会每隔指定的时间段就执行一次代码,具有重复性。而setTimeout只会调用后执行一次。 下面通过函数的建立和
- 分析摩斯密码是一种将文本信息作为一系列通断的音调、灯光或咔嗒声传输的方法,无需特殊设备,熟记的小伙伴即可直接翻译。它以电报发明者Samuel
- pygame如何捕捉鼠标的活动初始化参数import pygame, sysfrom pygame.locals import *def p
- 主键索引排序失效环境:MySQL8有一张用户信息表user_info,建表DDL如下:CREATE TABLE `user_info` (
- 官方网站:http://www.extjs.com/演示地址:http://www.yaohaixiao.com/effects/sampl
- 前言emmm…9月1日开学季,手头只有红底证件照,但是学院要求要蓝底,这可咋办呢。懒得下ps了。自己撸起来吧。方法一:
- 调用python自带的GUI制作库一开始想用Tkinter制作GUI的,网上说是python自带的,结果输入:import tkinter后
- 一、批量新建并保存工作簿import xlwings as xw # 导入库# 启动Excel程序,但不新建工作
- 1.装饰器通用模型def wrapper(fn): def inner(*args, **kwargs):&nbs
- 都知道django每次请求都会连接数据库和释放数据库连接。Django为每个请求使用新的数据库连接。一开始这个方法行得通。然而随着服务器上的