sql定位字元串
⑴ sql語句中查找某欄位中含有某字元串的語句怎麼寫
select filename from oa_file where filename not like '%[!-¥]%'
或者這個:
select filename from oa_file where filename not like '%[!-?]%'
出現的問題就是問號和問好也是不一樣的,比如說英文標點半形的問號是「?」,英文標點全形的問號是「?」但是中文半形問號是「?」中文全形的問號是「?」
這些都是不一樣的,你搜出來的都是帶有英文半形問號的文件。
(1)sql定位字元串擴展閱讀:
SQL中的欄位「包含」與「包含於」字元串的寫法
1、查詢表中某欄位值「包含」某字元串的所有記錄的方法
假如表中有一個name欄位,查詢name包含「張三」的所有記錄,可以這樣寫sql:
Stirng strsql="SELECT * FROM 表名 WHERE name LIKE 』%"+"張三"+"%』";
2、查詢某欄位值「包含於」某個字元串的所有記錄的方法
如果查詢表中name欄位包含於字元串「張三是個好學生」的所有記錄,可以這樣寫sql:
String strsql="SELECT * FROM 表名 WHERE INSTR(』張三是個好學生』,name)>0";
即可查詢,記錄中的name欄位值中包括:張、三、是、個、好、學、生、張三、......等所有記錄。
註:以上sql字元串中請將全形符號改為半形符號。
⑵ sql怎樣定位一個字元所在的位置
常用的字元串函數,其作用可分為四大類:串接字元、截取字元、轉換字元、其他作用的字元函數。
串接,就是把單獨的字元串組合為一個。如把人的姓和名串接在一起形成一個完整的姓名字元串。
截取,是指從字元串里提取出一部分字元,形成子串。可以分為截取字元、提取字元的位置。
轉換,是指把一個字元串中的內容或形式變換成另一個內容或形式。分為內容轉換和形式轉換。
其他作用的字元函數:以上三種作用之外的其他字元函數。
下面詳細介紹。
串接函數
可以通過+或者-,實現串接操作。在不同的資料庫管理系統中,使用的串接符號不同。
在SQL SERVER中的代碼為:SELECT 『JOHN』+ 『SON』
在MySQL中的代碼為:SELECT CONCAT(『JHON』,『SON』)
截取函數
1、SUBSTR(COLUMN NAME,STARING POSITION,LENGTH)
COLUMN NAME:欄位名稱
STARING POSITION:起始位置,即從第幾個字元開始截取
LENGTH:長度,即截取多少個字元的長度
select emp_id,substr(emp_id,1,3) from employee
從雇員表中檢索出雇員編號,雇員姓名兩個欄位。其中雇員姓名可通過從編號ID的前三個字元截取得到。
2、TRIM()、LTRIM()、RTRIM(),剪除字元串中的字元。
SQL 中的 TRIM 函數是用來移除掉一個字串中的字頭或字尾。最常見的用途是移除字首或字尾的空白。這個函數在不同的資料庫中有不同的名稱:
MySQL: TRIM( ), RTRIM( ), LTRIM( )
Oracle: RTRIM( ), LTRIM( )
SQL Server: RTRIM( ), LTRIM( )
各種 trim 函數的語法如下:
TRIM ( [ [位置] [要移除的字串] FROM ] 字串): [位置] 的可能值為 LEADING (起頭), TRAILING (結尾), or BOTH (起頭及結尾)。 這個函數將把 [要移除的字串] 從字串的起頭、結尾,或是起頭及結尾移除。如果我們沒有列出 [要移除的字串] 是什麼的話,那空白就會被移除。
LTRIM(字串): 將所有字串起頭的空白移除。
RTRIM(字串): 將所有字串結尾的空白移除
⑶ MS SQL Server有沒有查找字元串位置的函數
charindex
(字元串表達式1,字元串表達式2[,整數表達式])
select charindex('ab','BCabTabD')返回3
select charindex('ab','BCabTabD',4)返回6
在字元串2中查找字元串1,如果存在返回第一個匹配的位置,如果不存在返回0。如果字元串1和字元串2中有一個是null則返回null。
可以指定在字元串2中查找的起始位置。
⑷ sql中取指定字元串出現位置的方法
可用charindex函數。
如:查找字元串中「你好」的位置
執行:
select charindex('你好','2432你好dsfasdf')結果:
結論:「你好」中的「你」的起始位置是5,所以這樣就能判斷出指定字元的位置了。
⑸ sql 查找欄位中某字元的位置
1、創建測試表,
create table test_student(id number, remark varchar2(20));
⑹ sql如何獲取字元串中的指定字元
1、創建測試表,
create table test_int(value varchar2(50));
⑺ sql 怎樣定位一個字元所在的位置
可以通過INSTR方法來進行查詢:
sql:select INSTR('abcdefg ','c') from al;
輸出結果:3。
解釋:以上sql就是查詢c字元在「abcdefg」中的位置。
⑻ sql怎麼查詢某個字元在字元串中的位置
select CHARINDEX('查詢字元',查詢欄位), * from 表
如
⑼ sql 查找字元串位置(從倒數算起)
declare @i int,@j int,@str varchar(20)
set @str='abc-def-h'
set @i=1
set @j=len(@str)
declare @num int
while @i<@j
begin
set @num=charindex('-',@str,@i)
set @i=@i+1
set @i=@num+1
select @num
end