Ⅰ 如何從sql欄位里提取字元串
CHARINDEX函數返回字元或者字元串在另一個字元串中的起始位置。CHARINDEX函數調用方法如下:
CHARINDEX ( expression1 , expression2 [ , start_location ] )
Expression1是要到expression2中尋找的字元中,start_location是CHARINDEX函數開始在expression2中找expression1的位置。
Ⅱ 如何用SQL代碼提取文件名中的字元後插入表中
存儲過程,一個下劃線一個下劃線切.切完馬上存到表裡.
步驟:
1.替換後綴
列3 列1 列2
AA1_BB2_CC3
-----------------
2.取第一個下劃線前的數據
列3 列1 列2
AA1_BB2_CC3 AA1
-----------------
3.刪除列1長度的數據
列3 列1 列2
BB2_CC3 AA1
-----------------
4.取第二下劃線數據
列3 列1 列2
BB2_CC3 AA1 BB2
-----------------
列3 列1 列2
CC3 AA1 BB2
-----------------
Ⅲ sql截取字元串!
declare
@s
nvarchar(200),@s0
nvarchar(20),@s1
nvarchar(200),@s2
nvarchar(200)
set
@s0='默認風格'
set
@s='默認風格|#007168|23|紫色風格|#E8D6FE|21|藍色風格|#bad2fe|22'
declare
@r1
int,@r2
int
if
substring(@s,len(@s),1)<>'|'
set
@s=@s+'|'
set
@r1=charindex(@s0,@s)
--文字開始位置
select
@s1=substring(@s,@r1+len(@s0)+1,len(@s))
--文字+「|」以後的子串
set
@r2=@r1+charindex('|',@s1)+len(@s0)
--子串中第一個「|」相對於原串的起始位置
set
@s2=substring(@s1,charindex('|',@s1)+1,len(@s1))
--第一個「|」後的子串
set
@r2=@r2+charindex('|',@s2)
print
substring(@s,1,@r1-1)+substring(@s,@r2+1,len(@s))
你可以把@s0改成任意的什麼「風格」。
把這段代碼修改一下,可以作成一個函數,把@s0和@s作為參數,最後的print作為返回值。
Ⅳ SQL中,取字元串從右邊第2個字元到左邊的所有字元,求語句
SQL中,取字元串從右邊第2個字元到左邊的所有字元可以參考下面的代碼:
oracle
select substr('字元串',0,Len('字元串')-2) from al;
Sql Server
select substr('字元串',0,Len('字元串')-2)
(4)sql提取字元代碼擴展閱讀:
sql語句
更新:update table1 set field1=value1 where 范圍
查找:select * from table1 where field1 like 』%value1%』 (所有包含『value1』這個模式的字元串)
排序:select * from table1 order by field1,field2 [desc]
求和:select sum(field1) as sumvalue from table1
Ⅳ 如何從多個位置截取字元串的SQL語句
SQL 中從多個位置截取字元串,需要配合left,right,rtrim三個函數來實現。
一、函數語法:
1、left()
LEFT (<character_expression>, <integer_expression>)
返回character_expression 左起 integer_expression 個字元。
2、RIGHT()
RIGHT (<character_expression>, <integer_expression>)
返回character_expression 右起 integer_expression 個字元。
3、LTRIM(character_expression) 把字元串character_expression頭部的空格去掉。
4、RTRIM(character_expression) 把字元串character_expression尾部的空格去掉。
二、代碼實例:
圖中以:表a,ID為2,C列的值「12345678」為例:
其中最後一句中的right(rtrim(c),1),是因為字元只有8位,在right函數中,系統自動按C列定義的長度使用空格補足。也就是說如果是right(c,1)返回空字元「」,所以使用rtrim(c)把右邊空格刪除。
Ⅵ SQL語句提取字元串中數字
問題確認:你是要提取以下劃線(_)為分隔符的字串的第三個子字串。
答案:
select
dbo.getpara('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 al
Ⅷ sql 截取字元串
簡單的:
select substr(『04.06.02.063-48-Z952』,1,instr(『04.06.02.063-48-Z952』,'-',1,2)-1) from al ;
instr(04.06.02.063-48-Z952,'-',1,2)的意思是找到第二個出現的-號,然後減去1,把左邊都截取下來就ok了。
實際使用的時候,用欄位名替換那個字元串就ok了。
希望幫到你,請採納最佳。
Ⅸ sql如何獲取字元串中的指定字元
1、創建測試表,
create table test_int(value varchar2(50));
Ⅹ SQL 怎麼提取一個模式的字元串
這個通常我的做法有兩種方式(sql server,如果你是oracle或是其他的。。。。。。)
第一種,也是我用的最多的,就是用sql server 自身帶的一些字元串函數去處理,這種方式需要你自己去分析,做法比較靈活,比如書你這個,如果僅以你這3個示例欄位來講,可以將『 A.』替換成『』
updatetable1setcolumn1=REPLACE(column1,'A.','')
然後依次去執行B C ...,但是這么做也是有風險的,需要你了解這一列數據,比如這樣做會把小寫的『 a.』也替換掉,這時可能就需要通過collate Chinese_PRC_CS_AS來限定排序規則等方式來處理了,比較靈活,但是需要結合實際案例來做,只是給你一個思路,自己發揮吧。
第二種,這種只是針對sql server了,別的資料庫不知道可不可以這么解決。
sql server從2005開始,也是基於.NET平台了,所以可以用C#寫一個正則表達式去處理這個問題,如果你對C#和正則表達式了解的話,這個解決起來就十分簡單了,而且貌似沒有解決不了問題了。
我個人通常都用第一種,用C#去處理,用過幾次,在特殊場合有奇效,希望對你有用。