㈠ sql 分割字元串
select SUBSTRING (A列 , 1 ,CHARINDEX ( ' ' , A列 ) ) from A表
這個可以把A列空格前的字元取出來。
更新
update A表 set B列=(select SUBSTRING (A列 , 1 ,CHARINDEX ( ' ' , A列 ) ))
㈡ sql分割字元串查詢,分組統計
首先掌握sql中分割字元串的方法:
declare @sql varchar(2000),@tsql nvarchar(max),@split varchar(100)
set @sql='1,3,5,6,8' --保存的字元
set @split=','--分隔符
select @tsql='select '''+replace(@sql,@split,''' union all select ''')+''''
exec(@tsql)
----完成之後將查詢結果保存在一張臨時表中。
然後使用 select count(*) , 欄位名 from 表名 group by 欄位名 就可以得到您想要的結果了。
希望對您有所幫助!
㈢ SQL語言如何將表內字元串按分割符號分割存儲
用replace函數,將分號或者 @ 符號, 替換為你的其他分隔符。
REPLACE
用第三個表達式替換第一個字元串表達式中出現的所有第二個給定字元串表達式。
語法
REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )
參數
''string_replace1''
待搜索的字元串表達式。string_replace1 可以是字元數據或二進制數據。
''string_replace2''
待查找的字元串表達式。string_replace2 可以是字元數據或二進制數據。
''string_replace3''
替換用的字元串表達式。string_replace3 可以是字元數據或二進制數據。
返回類型
如果 string_replace(1、2 或 3)是支持的字元數據類型之一,則返回字元數據。如果 string_replace(1、2 或 3)是支持的 binary 數據類型之一,則返回二進制數據。
示例
下例用 xxx 替換 abcdefghi 中的字元串 cde。
SELECT REPLACE(''abcdefghicde'',''cde'',''xxx'')GO
下面是結果集:
------------abxxxfghixxx(1 row(s) affected)
㈣ sql 拆分字元串
alter FUNCTION [dbo].[SpitString]
(
@string nvarchar(500),--被分的字元串
@sp nvarchar(100) --分隔符
)
RETURNS
@_strings TABLE
(
id int,
string nvarchar(64),
inx int,
str1 nvarchar(65)
)
AS
BEGIN
declare @count int --計數
set @count=0
declare @index int
declare @one nvarchar(64)--取下來的一節
set @index=Charindex(@sp,@string)
while(@index>0)
begin
set @one=left(@string,@index-1)
set @count=@count+1
insert into @_strings (id,string,inx,str1) values(@count,@one,@index,@string)
set @string=right(@string,len(@string)-@index)
set @index=Charindex(@sp,@string)
end
insert into @_strings (id,string,inx,str1) values(@count+1,@string,@index,@one)
RETURN
END
go
調用:
SELECT * FROM [dbo].[SpitString] ('asdads,ad,sadsa,d,w,dsa,dsa,d,sad,sa,' ,',')
請注意:為了調試方便,便於理解森旦,返回的表中多蘆春核加入了兩個欄位,這樣,字串分解過程一目瞭然,您可以表值參數及插入語句中將其去掉。
SQL SERVER調試方法:1.在查詢分析器中進行調試,可以查看執行結果,錯誤報告,錯誤行定位等,還可以進行效率分析。也可以加入一些調試中間結果或欄位(如本例)進行調試。
2.跟蹤指令陪掘執行進行調試:參過事件探查器,打開,文件,新建,跟蹤,選擇伺服器及登錄參數,選擇一個模板,點擊運行,即可開始跟蹤SQLSERVER相關動作
㈤ sql語句中如何分割字元串進行替換
方法一:
varchar和nvarchar類型是支持replace,所以如果你的text不超過8000可以先轉換成前面兩種類型再使用replace
替換
text
ntext
數據類型欄位的語句
。
update
表名
set
欄位名=replace(cast(與前面一樣的欄位名
as
varchar(8000))
,'原本內容','想要替換成什麼')
方法二:
update
[表名]
set
欄位名
=
replace(與前面一樣的欄位名,'原本內容','想要替換成什麼')
㈥ sql語句進行字元串分割
substr(字元串,截取開始位置,截取長度) //返回截取的字
substr('Hello World',0,1) //返回結果為 'H' *從字元串第一個字元開始截取長度為1的字元串
substr('Hello World',1,1) //返回結果為 'H' *0和1都是表示截取的開始位置為第一個字元
substr('Hello World',2,4) //返回結果為 'ello'
substr('Hello World',-3,3)//返回結果為 'rld' *負數(-i)表示截取的開始位置為字元串右端向左數第i個字元
㈦ sql如何根據隔符分割字元串
資料庫自帶的substring()、charindex()函數,可以根據需要截取字元串,但並不能實現分割
自己寫分割函數,以下可以參考:
createfunctionGetStr
(
@strvarchar(1024),--要分割的字元串
@splitvarchar(10),--分隔符號
@indexint--取第幾個元素
)
returnsvarchar(1024)
as
begin
declare@locationint
declare@startint
declare@nextint
declare@seedint
set@str=ltrim(rtrim(@str))
set@start=1
set@next=1
set@seed=len(@split)
set@location=charindex(@split,@str)
while@location<>0and@index>@next
begin
set@start=@location+@seed
set@location=charindex(@split,@str,@start)
set@next=@next+1
end
if@location=0select@location=len(@str)+1
returnsubstring(@str,@start,@location-@start)
end
㈧ 求sql split函數的用法
目前的sql沒有自帶split的函數,所以如果想用的話,需要自己先自建一個split的內嵌函數後,再使用;
這個函數最簡單的用法,就是通過某個特定的分隔符,將一串字元串分割開來;
例如:split('a/b/c/d/e','/'),就會變成:
a
b
c
d
e
這個意思就是說,用''作為分隔符,分割'a/b/c/d/e'這個字元串;
具體如何構建split函數,可以參考一下這個:網頁鏈接
當然還可以根據自己的需要,構建更復雜的函數,方便自己的使用;