SQL 判斷乙個字串是否在另外乙個字串中

2022-01-13 22:13:09 字數 2352 閱讀 3729

eg:

str1 = 'admin'

str2 = '1234,123admin,xcxx'

比較str1是否在str2中

用常用的charindex,返回肯定是有值的,這裡自己動手寫乙個方法

--

--------------檢查乙個字串是否在另外乙個字串中數,另外乙個字串元素用,隔開-------------

create

function

[dbo

].[checkstrinarr

](@s

asvarchar(50),@sarr

asvarchar(5000)) returns

intas

begin

declare

@str

varchar(5000

)set

@str

=@sarr

declare

@next

intdeclare

@ret

int--

0表示不存在 1表示存在

set@ret=0

set@next=1

while

@next

<=dbo.get_strarraylength(@str,','

)begin

if dbo.get_strarraystrofindex(@str,'

,',@next)=

@sbegin

set@ret=1

; endset

@next

=@next+1

endreturn

@ret

end

--

--------------檢查乙個元素是否在陣列中-------------

create

function

[dbo

].[checkstrinarr

](@s

asvarchar(50),@sarr

asvarchar(5000)) returns

intas

begin

declare

@str

varchar(5000

)set

@str

=@sarr

declare

@next

intdeclare

@ret

int--

0表示不存在 1表示存在

set@ret=0

set@next=1

while

@next

<=dbo.get_strarraylength(@str,','

)begin

if dbo.get_strarraystrofindex(@str,'

,',@next)=

@sbegin

set@ret=1

; endset

@next

=@next+1

endreturn

@ret

end

--

-------------------獲取陣列的長度--------------

create

function

[dbo

].[get_strarraylength](

@str

varchar(5000), --

要分割的字串

@split

varchar(10) --

分隔符號

)returns

intas

begin

declare

@location

intdeclare

@start

intdeclare

@length

intset

@str

=ltrim(rtrim(@str

))

set@location

=charindex(@split,@str)

set@length=1

while

@location

<>

0begin

set@start

=@location+1

set@location

=charindex(@split,@str,@start

)

set@length

=@length+1

endreturn

@length

end

通過以上三個小函式即可判斷特定字串是否在目標串中

判斷乙個字串是否為另外乙個字串旋轉之後的字串

例如 給定s1 aabcd和s2 bcdaa,返回1 給定s1 abcd和s2 acbd,返回0.aabcd左旋乙個字元得到abcda aabcd右旋乙個字元得到daabc 思路 把aabcd複製兩遍,看結果是否在aabcdaabcd 中 左旋和右旋的結果都在aabcdaabcd 中 include...

在乙個字串中尋找另外乙個字串

在乙個字串中尋找另外乙個字串 public class text foundit true break test system.out.println foundit?found it didn t find it 該段程式有點難以理解,主要就是if語句的理解,if searchme.charat ...

判斷乙個字串是否在另乙個字串中

方法一 string str1 nihaoksdoksad string str2 ok int total 0 for string tmp str1 tmp null tmp.length str2.length tmp tmp.substring 1 system.out.println st...