1. 程式人生 > >Oracle欄位根據逗號分割查詢資料

Oracle欄位根據逗號分割查詢資料

需求是表裡的某個欄位儲存的值是以逗號分隔開來的,要求根據分隔的每一個值都能查出來資料,但是不能使用like查詢。

資料是這樣的:

查詢的sql如下:

select * from (
    select guid, regexp_substr(st_responsible, '[^,]+', 1, level) responsible 
        from tt_cancle_responsible 
        connect by level <= regexp_count(st_responsible, ',') + 1
        and guid = prior guid
        and prior dbms_random.value is not null )
where responsible ='wyy';

 查詢結果如下:

相關推薦

Oracle根據逗號分割查詢資料

需求是表裡的某個欄位儲存的值是以逗號分隔開來的,要求根據分隔的每一個值都能查出來資料,但是不能使用like查詢。 資料是這樣的: 查詢的sql如下: select * from ( select guid, regexp_substr(st_responsible, '[^,]+', 1, lev

SQL篇·Oracle根據逗號分割

一、業務場景介紹 有一個表字段儲存了另一個表的關聯欄位,以“|”符號分割,如下所示: 連線查詢中當然可以使用like來關聯,但是效率很差。高效的做法應該是將該欄位按照“|”字元分割,然後關聯查詢

oracle sql 分割某個中用逗號隔開的資料為行

select regexp_substr(q.nums, '[^,]+', 1, rownum,'i'), names from (select '1,2,3' nums, '張三' names f

mysql裡建立自定義函式---將某逗號分割並取出第一個資料

一、檢視常見函式的功能是否開啟 mysql> show variables like '%func%'; value值為OFF時。需要將其開啟. mysql> set gl

mysql 逗號隔開查詢包含的的問題

解決的問題看截圖,這個表裡面的rid是逗號隔開的,需要查詢rid的任何一個值在  (1,2,3)內 測試資料 CREATE TABLE `test` ( `rid` varchar(1024) DEFAULT NULL, `id` int(10) unsigne

Hibernate使用原生SQL多表查詢名相同導致查詢資料覆蓋問題解決辦法

系統測試環境: MySQL 5.0 Hibernate 3.3 由於使用了hibernate,雖然使用原生SQL繞過了hibernate自己的封裝,但是還是有些影響,比如欄位別名問題;相同的欄位名經過hibernate查詢會出現前一列覆蓋後一列的情況,這時可以用 方法來

Oracle 值按逗號拆分,變為多行資料

select distinct * from ( select regexp_substr(q.nums, '[^,]+', 1, Level,'i') order_num, names from ( select '1,2,3' nums, '張三' names f

sql語句查詢中包含指定字串的資料列表,完全匹配逗號中間的字串資料

查詢出,使用者表中name欄位完全包含小明的資料資訊 User表 id name userInfo 1 小明,明明 很帥 2 小明,李明 3 明天,李強 SELECT * FROM `User` where concat(',

Oracle去除重複(某一列的值重複),取最新(日期最新)的一條資料

解決思路:用Oracle的row_number() over函式來解決該問題。 解決過程:  1.查看錶中的重複記錄 select     t.id,     t.device_id,   &nb

如何從mysql資料庫中查詢指定且符合條件的資料 ,然後拼接成json字串,最後匯出json檔案

SELECT CONCAT("{'name':'",IFNULL(Name,''),"',","'sex':'",IFNULL(Sex,''),"',","'age':'",IFNULL(Age,''),"',", "'phone':'",IFNULL(Phon

SQL 根據一個的一部分分組查詢

背景 遇到問題:一個表中的一個欄位表示行業分類(該欄位是個程式碼值,如10100代表大類[農、林、牧、漁業],0101,0102,0103,0104分別代表小類[農業,林業,畜牧業,漁業]),現在需要根據行業大類分組,統計各行業的人數。 行業程式碼表如下: select

Informix資料表結構分析資料整理之型別說明和查詢SQL語句

查詢所有Informix資料表字段型別SQL語句: select a.tabname,b.colname,b.coltype,case   b.coltype when '0' then 'CHAR' when '1' then 'SMALLINT' when '2' the

MySQL 模糊查詢逗號隔開

1. 查詢pnum欄位中包含3或者9的記錄 SELECT * FROM test WHERE find_in_set('3',pnum) OR find_in_set('9',pnum); SELECT * FROM test WHERE CONCAT(',',pnum,'

mysql 中 find_in_set() 查詢出可變逗號分隔的目標

有時候我們在設計資料庫時有以下情況,如:在視訊表中有個欄位week, 他儲存的是視訊在周幾播放,如某視訊只在周1,4,6播放,那麼week欄位對應的值以 1,4,6 的格式儲存那們我們要用sql查詢所有視訊中周4可以播放的視訊 (這個時候不是用like能解決的,使用like可

oracle建立檢視包含clob,報錯:資料型別不一致:應為-,但卻獲得CLOB

在oracle中建立檢視的時候,語句中包含有clob型別的欄位。檢視建立語句大概如下: CREATE OR REPLACE FORCE VIEW "T_PROJECTS" ("ID", "NAME","DSC_INFO") AS ( select a.id,a.name,

oracle 遞增 表插入資料,id自動增1

  1、建立表         create table test(id int,                       name varchar(32))                            2、建立序列              create  

Oracle根據時間範圍查詢資料

1、當時間條件欄位為字串型別的時候,通過以下方法查詢資料: 1.1、SELECT * FROM 表名 t WHERE 1=1 AND to_date(t.tkdat,'yyyy/MM/dd') between to_date('2017/8/1','yyyy/MM/dd')

SQL 語句 將一個表中用特殊字元分割轉換成多行資料

在開始寫之前需要先說下這兩個函式的用法, SubString(str,pos,len): 從pos位置擷取字串STR,len個字元 CHARINDEX ( expression1 ,expression2, [ start_location ] ) :expression

sql 中為資料庫中沒有的根據賦值

SELECT CASE WHEN(memberAge<18) THEN '少年' WHEN(memberAge>=18 and memberAge <30) THEN '青年' WHEN(memberAge>=30 and memberAge<50) THEN '中年' ELSE

MySQL根據時間條件查詢資料

有時我們面要統計一下資料庫中指定日期的資料,如常用的,今天,昨天,明天,本週、上週、本月、上個月份的資料,還有對日期的加減, 除了我們可以使用strtotime來算還可以參考下面方法。   SQL減去指定天數 SELECT * from 表名 where DATE