當前位置:首頁 » 編程語言 » sql取第三個分隔符
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql取第三個分隔符

發布時間: 2023-07-11 18:05:17

sql查詢問題,如何一個個取出按分號隔開的數據

-- SELECT * FROM dbo.FunSplitStringToAraay( '28,353,2,35,88 ', ',')
CREATE FUNCTION dbo.FunSplitStringToAraay(@vchString varchar(1000),@vchSplit varchar(10))
RETURNS @tabArray table
(
string varchar(100)
)
AS
BEGIN
DECLARE @intStart int
DECLARE @intLocation int
DECLARE @vchSubstring varchar(100)
SELECT @intStart =1
SELECT @intLocation = CHARINDEX(@vchSplit,@vchString,@intStart)
WHILE (@intLocation <> 0 )
BEGIN
SELECT @vchSubstring=SUBSTRING(@vchString,@intStart,@intLocation-@intStart)

INSERT INTO @tabArray(string) SELECT @vchSubstring
SELECT @intStart = @intLocation +1
SELECT @intLocation = CHARINDEX(@vchSplit,@vchString,@intStart)
END
RETURN
END

㈡ 簡單SQL語句,如何截取指定分隔符前字元串

一、用到的函數:substring(' ', , )、charindex(' ',' ')
select SUBSTRING('[email protected]',1,charindex('@','[email protected]')-1)
1.substring(字元串表達式,開始位置,長度):
從一個指定字元串的指定位置截取制定長度的字元;
第一個參數表示被截取的字元串;
第二個參數表示要在第一個參數中開始截取的位置;
第三個參數表示要截取的長度。
例如:select substring('abc123',1,2) →返回ab
從字元串『abc123』的第一個字元開始截取,共截取兩個字元,最後得到『ab』。
2.charindex(字元串表達式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('[email protected]',charindex('@','[email protected]')-1)
1.left(字元串表達式,整數表達式):
從字元串表達式的最左邊開始截取整數表達式個字元。
例如:select left('abcdef',3) →返回abc

㈢ c#.net怎麼取sql第3條數據 表名hanjie 是第3條 不是前3條

第一種方法:select top 1 * from (select top 3 * from hanjie order by id desc) as data
第二種方法:select top 1 * from hanjie where id not in(select top 2 id from hanjie )

㈣ 高手,在sql語句里如何提取出分隔符前後的字元不要太長的。

create FUNCTION f_STR(
@s varchar(100), --待分拆的字元串
@split varchar(1), --分隔符
@count int--第幾個
)RETURNS varchar(20)
AS
BEGIN
declare @curr int,@re varchar(20)
set @s=@s+@split
set @curr=0
while @curr<>@count
begin
set @s=SUBSTRING(@s,(CHARINDEX(@split,@s)+1),(len(@s) -(CHARINDEX(@split,@s))))
set @curr=@curr+1
end
set @re=SUBSTRING(@s,1,(CHARINDEX(@split,@s) -1))
return @re
END

select dbo.f_STR('123,yu,33',',',0)
select dbo.f_STR('123,yu,33',',',1)
select dbo.f_STR('123,yu,33',',',2)

㈤ sql 分隔符

給你一個能處理分隔符的函數,這函數是sql server平台的,返回一個臨時表

if exists(select name from sysobjects where id = object_id(N'jk01_f_split'))
drop function jk01_f_split
go

create function jk01_f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>''
insert @temp values(@SourceSql)
return
end
go

用法
select * from jk01_f_split(欄位名, '分隔符')

後續的漢字拼接顯示,建議你用其它程序實現

㈥ sql如何根據隔符分割字元串

  1. 資料庫自帶的substring()、charindex()函數,可以根據需要截取字元串,但並不能實現分割

  2. 自己寫分割函數,以下可以參考:

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截取字元串語句

啥意思?截取最後一個下劃線後邊的所有內容唄?
啥資料庫啊?