1. 程式人生 > 其它 >Orcale中對字串操作trim,length,instr,subtsr,distinct,||

Orcale中對字串操作trim,length,instr,subtsr,distinct,||

技術標籤:資料庫資料庫

1.trim(),orcale中去除字串兩邊的空格,

去除字串兩邊的所有空格

select '   hel lo   ' from dual;          ---     hel lo   

select trim('   hel lo   ') from dual;    ---hel lo

2.length(),orcale統計某個欄位的字串長度,

select jxqhm,length(jxqhm) from gd_gj_yjgjxx where czsj >= trunc(sysdate) -3;

在這裡插入圖片描述

3.instr(),orcale中查詢欄位中某個字元是否存在以及存在的位置

查詢某個字元在欄位中的位置

格式一:instr( string1, string2 )    // instr(源字串, 目標字串)
	查詢String1字串中,string2第一次出現的位置,沒有查詢到結果返回0
格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] )   // instr(源字串, 目標字串, 起始位置, 匹配序號)
	查詢string1字串中,從第start_position 個字元開始查詢string2 第nth_appearance 次出現的位置
select jxqhm,instr(jxqhm,
'C', 1, 1) from gd_gj_yjgjxx select jxqhm,instr(jxqhm, 'C', 1, 2) from gd_gj_yjgjxx

在這裡插入圖片描述
在這裡插入圖片描述

4.subtsr,orcale擷取指定欄位

格式: substr(string string, int a, int b);
1、string 需要擷取的字串
2、a 擷取字串的開始位置(注:當a等於0或1時,都是從第一位開始擷取)
3、b 要擷取的字串的長度

substr(zbtm, 7, 2)   擷取zbtm欄位第7-9位

擷取'姓名:張三,性別:男'字串中的姓名和性別
結合substr函式和instr函式進行擷取

select substr('姓名:張三,性別:男',
              instr('姓名:張三,性別:男', ':', 1, 1) + 1,
              instr('姓名:張三,性別:男', ',', 1, 1) -
              instr('姓名:張三,性別:男', ':', 1, 1) - 1),
       substr('姓名:張三,性別:男',
              instr('姓名:張三,性別:男', ':', 1, 2) + 1,
              1)
  from dual;

在這裡插入圖片描述
擷取表中某個欄位

select jxqhm,
       substr(jxqhm,
              instr(jxqhm, 'C', 1, 1) + 1,
              instr(jxqhm, 'A', 1, 1) - instr(jxqhm, 'C', 1, 1) - 1)
  from gd_gj_yjgjxx
 where czsj >= trunc(sysdate) - 3;
----CNCGOADEFRAAAUN10050010100076
----NCGO

在這裡插入圖片描述

5.||,orcale連線字串

select ('00' || czmc || '00') from gd_gj_yjgjxx;

在這裡插入圖片描述

6.distinct去重

distinct 只能用在查詢的第一個欄位中

select distinct username,password from user
select distinct id,username,password from user