sql如何截取字符
---MSSQL1 .SUBSTRING返回字符、binary、text 或 image 表達式的一部分。
有關可與該函數一起使用的有效 Microsoft? SQL Server? 數據類型的更多信息,請參見數據類型。 語法SUBSTRING ( expression , start , length ) 參數expression是字符串、二進制字符串、text、image、列或包含列的表達式。
不要使用包含聚合函數的表達式。start是一個整數,指定子串的開始位置。
length是一個整數,指定子串的長度(要返回的字符數或字節數)。2. LEFT返回從字符串左邊開始指定個數的字符。
語法LEFT ( character_expression , integer_expression ) 參數character_expression字符或二進制數據表達式。character_expression 可以是常量、變量或列。
character_expression 必須是可以隱式地轉換為 varchar 的數據類型。否則,請使用 CAST 函數顯式轉換 character_expression。
integer_expression是正整數。如果 integer_expression 為負,則返回空字符串。
返回類型varchar3. RIGHT返回字符串中從右邊開始指定個數的 integer_expression 字符。語法RIGHT ( character_expression , integer_expression ) 參數character_expression由字符數據組成的表達式。
character_expression 可以是常量、變量,也可以是字符或二進制數據的列。integer_expression是起始位置,用正整數表示。
如果 integer_expression 是負數,則返回一個錯誤。返回類型varchar---ORACLEsubstr( string, start_position, [ length ] )。
簡單SQL語句,如何截取指定分隔符前字符串
一、用到的函數:substring(' ', , )、charindex(' ',' ')
select SUBSTRING('hello@*',1,charindex('@','hello@*')-1)
*ing(字符串表達式,開始位置,長度):
從一個指定字符串的指定位置截取制定長度的字符;
第一個參數表示被截取的字符串;
第二個參數表示要在第一個參數中開始截取的位置;
第三個參數表示要截取的長度。
例如:select substring('abc123',1,2) →返回ab
從字符串'abc123'的第一個字符開始截取,共截取兩個字符,最后得到'ab'。
*dex(字符串表達式1,字符串表達式2[,整數表達式]):
在字符串2中查找字符串1,如果存在返回第一個匹配的位置,如果不存在返回0。如果字符串1和字符串2中有一個是null則返回null。
可以指定在字符串2中查找的起始位置。
例如:select charindex('ab','BCabTabD') → 返回3
select charindex('ab','BCabTabD',4) →返回6
二、用到的函數:left(' ', )、charindex(' ',' ')
select LEFT('hello@*',charindex('@','hello@*')-1)
*(字符串表達式,整數表達式):
從字符串表達式的最左邊開始截取整數表達式個字符。
例如:select left('abcdef',3) →返回abc
sql截取字符串語句
問題確認:你是要提取以下劃線(_)為分隔符的字串的第三個子字串。
答案:
select *a('14層_303盤區_5307工作面',3,'_')
條件:先要再數據庫中加入這個自定議函數。這里免費奉獻給你一個有用的函數,用于按指定分隔符提取字串。
CREATE FUNCTION getpara
(@Sql nvarchar(3000),--要分割的原字串。
@sn int, --要取第幾個
@Deli varchar(1))--分隔符
RETURNS varchar(1000)--返回值
AS
BEGIN
declare @first int,@last int,@result varchar(1000),@sn0 int
select @sn0=0,@first=0,@LAST=1,@SQL=@SQL+REPLICATE(@DELI,5)
while @sn0!=@sn
begin
select @sn0=@sn0+1,@first=@LAST,@last=charindex(@DELI,@SQL,@LAST)+1
end
SET @RESULT=SUBSTRING(@SQL,@FIRST,@LAST-@FIRST-1)
RETURN ( @RESULT )
END
GO
sql數據庫截取字符串函數
Oracle中 其語法為:substr函數的用法,取得字符串中指定起始位置和長度的字符串 ,默認是從起始位置到結束的子串。
substr( string, start_position, [ length ] ) substr('目標字符串',開始位置,長度)如: substr('This is a test', 6, 2) would return 'is' substr('This is a test', 6) would return 'is a test' substr('TechOnTheNet', -3, 3) would return 'Net' substr('TechOnTheNet', -6, 3) would return 'The'select substr('Thisisatest', -4, 2) value from dual。
截取一個字符串的最后6位sql語句怎么寫
看了一下回答,我還是說幾句吧,希望有所幫助。
對SQl字符串的截取現在有兩種方法, 一種是:用right函數。 如果你的字符串已經讀取到的話,假如放在strings自己定義的變量里面就可以用:select right('strings',4) 此函數返回的結果是,字符串strings的最后四位,如果strings不足四位或剛好四位,則全部返回。
如果你的字符串是從表中讀取出來的話,可以先定義一個變量declare @string 把查詢出的字符串賦值過去,使用:select right('@string',4),就可以了,理解同上。 另一種是:用substring函數 select substring('1234567',len('1234567')-4,4) 返回的結果是:'4567' 或用上面的自定義變量才存儲查詢出來的字符串。
小小一例:godeclare @string char(10)set @string='1234567' ----可以是一條sql語句,返回的結果是一個字符串select substring('1234567',len('1234567')-4,4)go應該清楚了吧? ^_^ 要是有什么不清楚的,隨時Hi我 相互學習!。
轉載請注明出處華閱文章網 » sql語句截取字符串