sql隨機擷取字串的數字,sql隨機擷取字串的數字

2023-03-02 04:20:19 字數 1767 閱讀 4023

1樓:匿名使用者

首先 ,要肯定的是在該字串中是沒辦法取到隨機數的。

如果要取隨機數,要先把字串轉換為行資料,放於1列中。

然後再隨機取一個數,最後再把行資料拼接為字串即可。

2樓:匿名使用者

--下面兩句定義了表變數作參考,使用時去掉,給@str賦值查詢時換成你自己的表

declare @temptb table(id int, vals varchar(100))

insert into @temptb values(1, '1,2,3,4,5')

-- declare @tb table(val varchar(50))

declare @str varchar(100)

declare @length int

select @str = vals from @temptb where id = 1

set @str = @str + ','

set @length = len(@str)

while @length > 0

begin

insert into @tb values(substring(@str, 1, charindex(',', @str)))

set @str = substring(@str, charindex(',', @str) + 1, len(@str))

set @length = len(@str)

endselect top 1 replace(val, ',', '') num from @tb order by newid()

-----------

你先看看這段**吧,是在字串中的一個隨機數,否則還寫這麼多**幹嗎

你把開始2句去掉

select @str = vals from @temptb where id = 1

這個查詢換成從你資料庫查詢

3樓:恭桂花書辰

declare

@snvarchar(200),@s0

nvarchar(20),@s1

nvarchar(200),@s2

nvarchar(200)

set@s0='預設風格'

set@s='預設風格|#007168|23|紫色風格|#e8d6fe|21|藍色風格|#bad2fe|22'

declare

@r1int,@r2

intif

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作為返回值。

c 字串擷取,C 擷取字串

string s 14525 964 string s1,s2 for int i 0 i s.length i 下面的片段再擷取加號後面的部分就行了。建議你去看看string類的函式,它有很多方便的字串操作函式,比我上面寫的簡單很多。夠簡單吧!include using namespace std...

php怎麼用substr函式擷取字串中的某部分

示例 substr hello world 6,4 world 語法substr string,start,length 引數描述 string 必需。規定要返回其中一部分的字串。start 必需。規定在字串的何處開始。正數 在字串的指定位置開始 負數 在從字串結尾開始的指定位置開始0 在字串中的第...

c按位元組數擷取字串,C 擷取一段中文字串前兩個字元

substring 擷取字串 用法substring int beginindex 返回一個新的字串,它是此字串的一個子字串。substring int beginindex,int endindex 返回一個新字串,它是此字串的一個子字串。beginindex 起始索引 包括 從0開始endind...