Oracle中實現查詢結果按照in中條件排序 InStr函式
Oracle中,可以使用 Instr 函式對某個字串進行判斷,判斷其是否含有指定的字元。
其語法為:
Instr(string, substring, position, occurrence)
其中
string:代表源字串;
substring:代表想從源字串中查詢的子串;
position:代表查詢的開始位置,該引數可選的,預設為 1;預設查詢順序為從左到右。當起始位置為負數的時候,從右邊開始查詢。
occurrence:代表想從源字元中查詢出第幾次出現的substring,該引數也是可選的,預設為1;
如果 position 的值為負數,那麼代表從右往左進行查詢。
返回值為:查詢到的字串的位置。
對於 Instr 函式,我們經常這樣使用:從一個字串中查詢指定子串的位置。
例如:
SELECT Instr('Hello Word', 'o', -1, 1) "String" FROM Dual 的顯示結果是
Instring
————
8
INSTR方法的格式為:
INSTR(源字串, 目標字串, 起始位置, 匹配序號)
例如:
INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字串為'CORPORATE FLOOR', 目標字串為'OR',起始位置為3,取第2個匹配項的位置。
預設查詢順序為從左到右。當起始位置為負數的時候,從右邊開始查詢。
所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL的顯示結果是
Instring
——————
14
特殊用法:
特殊用法說到底也沒有什麼特別,我們上面看到的“源字串”、“目標字串”都是寫死的,其實它也可以為欄位,看下面的例子:
select id, name from users where instr('101914, 104703', id) > 0;
它等價於
select id, name from users where id = 101914 or id = 104703;
用途:
採用instr在原因是我在前臺連續錄入多個人員的id,想返回這些人員的資料。舉個例子:“王武,男,計算機系學生;曉亮,男,藝術系學生。”
前臺,接收輸入的id,用","分開,在後臺我不想再對它做分開來處理,就可以使用instr語句,然後再用for loop連線得到的結果。
還有一個,可能不怎麼常用:
select id, name from users where instr(id, '101') > 0;
等價於
select id, name from users where id like '%101%'
對於這樣使用instr的效能怎樣,還沒有做過同比測試。
where a.resclassenname=b.resclassenname and a.attributeenname=b.attributeenname
and b.resattributeid in (155977,172505,155967,155952,155951,278943,155976,155963,227385,172503,279664)
order by instr('155977,172505,155967,155952,155951,278943,155976,155963,227385,172503,279664',b.resattributeid)
相關文章
- ORACLE 查詢條件出現關鍵字:&Oracle
- Linq查詢之多個排序條件排序
- 使用條件型別實現TypeScript中的函式過載型別TypeScript函式
- MYSQL滿足條件函式里放查詢最大函式的方法MySql函式
- PostgreSQL函式:返回表查詢結果集SQL函式
- oracle中substr() instr() 用法Oracle
- jQuery 條件搜尋查詢 實時取值 升降序排序jQuery排序
- gorm 使用map實現in 條件查詢用法GoORM
- Mysql-基本練習(10-設定分組條件、查詢結果排序、限制查詢結果返回的數量、TRUNCATE刪除表記錄)MySql排序
- ORDER對查詢結果進行排序排序
- Oracle OCP(06):通用函式和條件表示式Oracle函式
- 二分查詢(函式實現)函式
- c++字串查詢函式實現C++字串函式
- oracle按照表條件expdp匯出資料Oracle
- mysql條件查詢MySql
- MongoDB查詢條件MongoDB
- 條件函式函式
- SQL Server解惑——查詢條件IN中能否使用變數SQLServer變數
- Oracle OCP(02):條件和排序Oracle排序
- Instr函式的用法函式
- oracle中的條件語句Oracle
- Mybatis實現條件IN查詢(foreach)和invalid comparison異常MyBatis
- Laravel 多條件查詢Laravel
- impala 條件函式函式
- mysql FIND_IN_SET函式、INSTR函式MySql函式
- MySQL 查詢結果取交集的實現方法MySql
- python中函式如何返回多個結果?Python函式
- MySQL函式-條件判斷函式MySql函式
- 自研ORM框架 實現類似EF Core Include 拆分查詢 支援自定義條件、排序、選擇ORM框架排序
- Javaweb-DQL-條件查詢JavaWeb
- 查詢條件封裝物件封裝物件
- AntDesignBlazor示例——列表查詢條件Blazor
- SpringBoot Jpa多條件查詢Spring Boot
- mongodb條件查詢不等於MongoDB
- golang beego orm 查詢條件 or andGolangORM
- 【mybatis-plus】條件查詢MyBatis
- Oracle中left join中右表的限制條件Oracle
- 寫一個“特殊”的查詢構造器 – (四、條件查詢:複雜條件)
- SSH實現客戶按條件查詢\上傳檔案等