Oracle 查詢欄位不包含多個字串方法
開發過程中遇到個需求,使用者要提取的資料列中不包含 YF、ZF、JD的字串,
方法1:select * from table where order_no not like '%YF%' and order_no not like '%ZF' and order_no not like '%JD%'
感 覺方法1有點笨,想到REGEXP_LIKE 可以實現包含多個,在前面加上 not 就可以實現不包含功能,方法如下:
方法2:select * from table where not regexp_like(order_no,'YF|ZF|JD')
兩種方法都可以實現,但效率問題,經查詢兩個月11萬條資料做比效方法1用時18秒,方法2用時15秒,連續測試三次方法1總是比方法快2至3秒,如果資料量大的還是建議使用方法1!
相關推薦
Oracle 查詢欄位不包含多個字串方法
開發過程中遇到個需求,使用者要提取的資料列中不包含 YF、ZF、JD的字串,方法1:select * from table where order_no not like '%YF%' and order_no not like '%ZF' and order_no
oracle資料中一個欄位中存在多個值 進行分組統計查詢
如圖我有這樣的兩條資料 我要根據unit_name這個欄位中的多個值進行分組統計數量 我要顯示的格式如下 單位名稱 數量 測試單位 1 dd
【mybatis】欄位中儲存多個值用“,”隔開,如何查詢
目錄 做專案遇到這種情況,欄位中儲存多個值用“,”隔開。這種應該如何查詢呢。 做個簡單的例子: 表: 判斷一個值是否存在其中(FIND_IN_SET) SELECT *
oracle將一個欄位拆分成多個值(regexp_substr函式)
例: select regexp_substr(p.attributename, '[^,]+',1,level) c1 from tablename p connect by level &l
一個欄位同時滿足多個條件的查詢
構造一個如下圖所示的表: №_001: 建立表 tb_a DROP TABLE tb_a CASCADE CONSTRAINT; COMMIT; CREATE TABLE tb_a( model_name varchar2(10), parts_name varchar2
oracle查詢欄位是否含有中文
1、 SELECT distinct F_HTZZRQ FROM HR_USERS_COMMON WHERE F_HTZZRQ LIKE '%[吖-座]%' 2、首字 SELECT distinct F_HTZZRQ FROM HR_USERS_COMMO
MySQL判斷一個欄位不包含中文
中文=2個位元組,英文或數字=1個位元組,因此我們用mysql中兩個函式比較位元組和字元的長度是否相等來判斷是否包含中文 select * from user where CHAR_LENGTH(name)=LENGTH(name) 如果想過濾掉空字串或限制下長度
SQL中刪除單欄位重複和多個欄位重複的方法
--刪除OrderDetails表中materialscode欄位重複的行,只保留ID最小的一行資料 delete from OrderDetails where materialscode in (select materialscode from OrderDetails group by
oracle: DATE欄位不能只儲存"小時分鐘秒"
做了個小測試: create table VIPR_AIRPORT_RULE1 ( AIRLINE VARCHAR2(2) not null, AIRPORT VARCHAR2(3) not null, START_TIME
Mysql查詢欄位中包含某字串的記錄
1.正確的方式: 判斷欄位field_A中是否包含23: select * from table_test where FIND_IN_SET("23", field_A) ; 2.錯誤的方式
mongodb查詢欄位不存在的文件
在mongodb中,如果實體類的某個欄位為null, 則在存入mongodb時該欄位不會存入 查詢某個欄位是否存在的語句 db.getCollection(‘test’).find({res_name:
mysql中欄位儲存的值是以,隔開查詢欄位中有某個值的方法
select 欄位名from 表名where locate('3291595777767511931',欄位名) find_in_set()和like的區別:主要的區別就是like是廣泛的模糊查詢,而 find_in_set() 是精確匹配,並且欄位值之間用‘
mybatis返回map型別資料空值欄位不顯示(三種解決方法)
一、查詢sql新增每個欄位的判斷空 IFNULL(rate,'') as rate11 二、ResultType利用實體返回,不用map 三、springMVC+mybatis查詢資料,返回resultType=”map”時,如果資料為空的欄位,則該欄位省略不顯示,可以
sql查詢find_in_set,欄位包含多個ID,並用逗號分開
比如:查詢carouselPicIds輪播圖中包含圖片ID為1的商品則:SELECT * from product where find_in_set('1',carouselPicIds);查詢結果為第一條資料,第二條資料不會被查出來,所以find_in_set方法是以逗號
Oracle 根據欄位值查詢其所在的表、欄位(只有欄位值資訊,連欄位型別都不知道)
今天一哥們求助,oracle的我只知道ziduan欄位的值,連型別,大小設定全都不知道,如何查詢到該欄位所在的表,以及該欄位名。以下是我編寫的實際指令碼: 1.假設該欄位是varchar2或者char型別 DECLARE CURSOR cur_hh IS SELECT tabl
[oracle] count()函式使用錯誤欄位導致的查詢失敗(聚合函式聚合欄位與分組欄位不一致)
一 錯誤的SQL語句(原始的,格式是直接從word中拷貝的,存在多個錯誤): select to_char(t.fbsj, 'YYYY') as a, count(t.fbsj) from ( select fbsj from ods_t_ky_lw where
Elasticsearch: 布林(bool)過濾器--AND、OR、NOT查詢、設定多個查詢欄位
概念 bool (布林)過濾器。 這是個 複合過濾器(compound filter) ,它可以接受多個其他過濾器作為引數,並將這些過濾器結合成各式各樣的布林(邏輯)組合。 格式 一個 bool 過濾器由三部分組成: { "bool" : {
mysql查詢欄位資料不重複distinct及distinct的多欄位操作
轉載自 【http://www.jb51.net/article/77997.htm】 MySQL通常使用GROUPBY(本質上是排序動作)完成DISTINCT操作,如果DISTINCT操作和ORDERBY操作組合使用,通常會用到臨時表.這樣會影響效能. 在一些情況下,M
oracle 更新欄位,更新非空欄位(null、‘’、一個或多個空格的情況)
UPDATE LOA_FUND_HOLD_DTL SET TRANS_STATUS = '2', AND FAIL_INFO = NVL(TRIM(' ' from rec.FAIL_INFO),'主機對賬失敗。'), A
Oracle資料庫裡面查詢字串型別的欄位不為空和為空的SQL語句:
摘要:近期專案中,在做高階查詢的時候有個條件是根據選擇的欄位,然後再選擇欄位的值為空和不為空做查詢,在寫SQL語句的時候費了很長時間,現在記錄一下,方便日後檢視: 一:查詢字串型別的欄位的值不為空的S