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 查找欄位中某字元的位置
1、創建測試表,
create table test_student(id number, remark varchar2(20));
㈣ sql 怎樣定位一個字元所在的位置
可以通過INSTR方法來進行查詢:
sql:select INSTR('abcdefg ','c') from al;
輸出結果:3。
解釋:以上sql就是查詢c字元在「abcdefg」中的位置。
㈤ SQL 查詢指定字元串的位置
可用charindex函數。
如:查找字元串中「你好」的位置
執行:
select charindex('你好','2432你好dsfasdf')結果:
結論:「你好」中的「你」的起始位置是5,所以這樣就能判斷出指定字元的位置了。
㈥ 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如何按指定字元在字元串中的位置來排序
CreateTableT
(
idint,
StVarchar(100)
)
InsertIntoTValues(1,'魂牽夢縈復方丹參a草葉魂牽夢縈')
InsertIntoTValues(2,'魂牽夢縈復方丹參草葉a魂牽夢縈')
InsertIntoTValues(3,'魂牽夢縈復方丹參草葉b魂牽夢縈')
InsertIntoTValues(4,'魂牽夢縈復方丹參b草葉魂牽夢縈')
InsertIntoTValues(5,'魂牽夢縈復方丹參草葉魂牽abc夢縈')
InsertIntoTValues(6,'魂牽夢縈復方丹參草葉什麼都沒有魂牽夢縈')
--先按是否包含a/b排序(包含的在前面,不包含的在後面)
--再按a/b在字元串中出現的位置排序
Select*FromT
OrderbyCaseWhenPATINDEX('%[ab]%',St)>0Then0Else1End,PATINDEX('%[ab]%',St)
㈧ 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怎麼查詢某個字元在字元串中的位置
select CHARINDEX('查詢字元',查詢欄位), * from 表
如
㈩ SQL 特殊字元位置
DECLARE @str VARCHAR(150)
declare @result table(indexOfArisk int)
declare @strResult int
set @strResult = 0
SET @str='100.1*200.22*300.333*400.4444*500.55555*66*77'
while (charindex( '*', @str) != 0)
begin
set @strResult = @strResult + charindex( '*', @str)
insert into @result values(@strResult)
set @str = Substring(@str, charindex('*', @str) + 1, len(@str))
end
select * from @result
這個查詢能得到所有*的位置,根據你的需要獲取吧。
Wish it helps.