① 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(字串): 將所有字串結尾的空白移除
② sql 怎樣定位一個字元所在的位置
可以通過INSTR方法來進行查詢:
sql:select INSTR('abcdefg ','c') from al;
輸出結果:3。
解釋:以上sql就是查詢c字元在「abcdefg」中的位置。
③ SQL獲取字元串最後出現的位置
一.如:'6.7.8.2.3.4.x'得到最後一個'.'後面的字元串:
declare @str1 varchar(50)
set @str1='6.7.8.2.3.4.x'
select REVERSE(SUBSTRING(REVERSE(@str1),1,CHARINDEX('.',REVERSE(@str1))-1)) -------- string:'x'--
二.如:'6.7.8.2.3.4.x'得到最後一個'.'前面的字元串:
declare @str2 varchar(50)
set @str2='6.7.8.2.3.4.x'
SELECT substring(@str2,1,(LEN(@str2)-CHARINDEX('.',REVERSE(@str2)))) -------- string:'6.7.8.2.3.4'--
三.如:'6.7.8.2.3.4.x'得到最後一個'.'在字元串的位置:
declare @str3 varchar(50)
set @str3='6.7.8.2.3.4.x'
SELECT LEN(@str3)-CHARINDEX('.',REVERSE(@str3))+1 --------Integer:12--
④ 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
⑤ sql怎麼查詢某個字元在字元串中的位置
select CHARINDEX('查詢字元',查詢欄位), * from 表
如
⑥ MS SQL Server有沒有查找字元串位置的函數
sql 查找字元串位置使用CHARINDEX函數。
CHARINDEX函數,在一段字元中搜索字元或者字元串。
語法
CHARINDEX ( expression1 , expression2 , [ start_location ] )
參數
expression1
一個表達式,其中包含要尋找的字元的次序。expression1是一個短字元數據類型分類的表達式。
expression2
一個表達式,通常是一個用於搜索指定序列的列。expression2屬於字元串數據類型分類。
start_location
在expression2中搜索expression1時的起始字元位置。如果沒有給定start_location,而是一個負數或零,則將從expression2的起始位置開始搜索。
返回類型
int
例:
⑦ sql中取指定字元串出現位置的方法
可用charindex函數。
如:查找字元串中「你好」的位置
執行:
select charindex('你好','2432你好dsfasdf')結果:
結論:「你好」中的「你」的起始位置是5,所以這樣就能判斷出指定字元的位置了。
⑧ sql查找包含某些字元的列
1、首先創建模擬數據源表。