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)
相關文章
- MySQL in 查詢,並通過 FIELD 函式按照查詢條件順序返回結果MySql函式
- RANK函式基於條件的查詢函式
- 等於NULL的查詢條件導致查詢結果不正確Null
- Oracle中過程/函式返回結果集Oracle函式
- PostgreSQL函式:返回表查詢結果集SQL函式
- 使用條件型別實現TypeScript中的函式過載型別TypeScript函式
- Oracle instr函式Oracle函式
- Oracle中把一個查詢結果插入到一張表中Oracle
- oracle的instr函式在hive上面的實現Oracle函式Hive
- Linq查詢之多個排序條件排序
- 【轉】oracle instr函式Oracle函式
- Mysql-基本練習(10-設定分組條件、查詢結果排序、限制查詢結果返回的數量、TRUNCATE刪除表記錄)MySql排序
- ORDER對查詢結果進行排序排序
- gorm 使用map實現in 條件查詢用法GoORM
- jQuery 條件搜尋查詢 實時取值 升降序排序jQuery排序
- WF-1 FIND NOTIFICATION 下組合條件查詢無結果
- xsl中,對xml文件查詢的結果再次查詢XML
- SQL中多條件查詢括號的用途SQL
- 在Oracle中查詢儲存過程和函式Oracle儲存過程函式
- PHP查詢資料庫中滿足條件的記錄條數(二種實現方法)PHP資料庫
- SQL Server解惑——查詢條件IN中能否使用變數SQLServer變數
- MySQL 查詢結果取交集的實現方法MySql
- oracle date資料的條件查詢Oracle
- oracle 索引升降序及排序條件 對查詢計劃的影響Oracle索引排序
- SQL Server對組合查詢結果排序方法SQLServer排序
- MongoDB查詢條件MongoDB
- MongoDB條件查詢MongoDB
- mysql條件查詢MySql
- instr() 函式函式
- c++字串查詢函式實現C++字串函式
- 二分查詢(函式實現)函式
- python中函式如何返回多個結果?Python函式
- oracle中connect by prior實現遞迴查詢Oracle遞迴
- oracle中substr() instr() 用法Oracle
- Rafy 中的 Linq 查詢支援(根據聚合子條件查詢聚合父)
- oracle查詢結果外面新增引號Oracle
- Oracle查詢結果 儲存為XMLOracleXML
- oracle 查詢結果的各種格式Oracle