SQL中判斷字串中包含字元的方法

2022-02-02 14:13:55 字數 4519 閱讀 9188

通過2個函式charindex和patindex以及萬用字元的靈活使用

函式:charindex和patindex

charindex:查某字元(串)是否包含在其他字串中,返回字串中指定表示式的起始位置。

patindex:查某字元(串)是否包含在其他字串中,返回指定表示式中某模式第一次出現的起始位置;如果在全部有效的文字和字元資料型別中沒有找到該模式,則返回零。特殊:可以使用萬用字元!

例子:1. 查詢字串中是否包含非數字字元

select patindex('%[^0-9]%', '1235x461')

select patindex('%[^0-9]%', '12350461')

2. 查詢字串中是否包含數字字元

select patindex('%[0-9]%', 'suyllgoo')

select patindex('%[0-9]%', 'suyllg0o')

3.函式判斷字串只包含數字

create function [dbo].fn_isnumeric

(@pstring varchar(8000)

)returns bit

with encryption

asbegin

declare @vjudge int

set @vjudge = 0

select @vjudge = 

case 

when patindex('%[0-9]%', lower(@pstring)) > 0 then 0

when patindex('%[0-9]%', lower(@pstring)) = 0 then 1

endreturn @vjudge

end4.函式判斷字串只包含字母(忽略大小寫)

create function [dbo].fn_isalpha

(@pstring varchar(8000)

)returns bit

with encryption

asbegin

declare @vjudge int

set @vjudge = 0

select @vjudge = 

case 

when patindex('%[a-z]%', lower(@pstring)) > 0 then 0

when patindex('%[a-z]%', lower(@pstring)) = 0 then 1

endreturn @vjudge

end5. 函式判斷字串不包含任何符號(包括空格)

create function [dbo].fn_isalphanumeric

(@pstring varchar(8000)

)returns bit

with encryption

asbegin

declare @vjudge int

set @vjudge = 0

select @vjudge = 

case 

when patindex('%[^a-z0-9]%', lower(@pstring)) > 0 then 0

when patindex('%[^a-z0-9]%', lower(@pstring)) = 0 then 1

endreturn @vjudge

end6. 函式判斷字串不包含任何符號(除空格外)

create function [dbo].fn_isalphanumericblank

(@pstring varchar(8000)

)returns bit

with encryption

asbegin

declare @vjudge int

set @vjudge = 0

select @vjudge = 

case 

when patindex('%[^a-z0-9 ]%', lower(@pstring)) > 0 then 0

when patindex('%[^a-z0-9 ]%', lower(@pstring)) = 0 then 1

endreturn @vjudge

end-- 注意:[^a-z0-9 ]模式中最後有乙個空格。

用charindex()——charindex(字元,字串)>0 –>包含

通過2個函式charindex和patindex以及萬用字元的靈活使用

函式:charindex和patindex

charindex:查某字元(串)是否包含在其他字串中,返回字串中指定表示式的起始位置。

patindex:查某字元(串)是否包含在其他字串中,返回指定表示式中某模式第一次出現的起始位置;如果在全部有效的文字和字元資料型別中沒有找到該模式,則返回零。特殊:可以使用萬用字元!

例子:1. 查詢字串中是否包含非數字字元

select patindex('%[^0-9]%', '1235x461')

select patindex('%[^0-9]%', '12350461')

2. 查詢字串中是否包含數字字元

select patindex('%[0-9]%', 'suyllgoo')

select patindex('%[0-9]%', 'suyllg0o')

3.函式判斷字串只包含數字

create function [dbo].fn_isnumeric

(@pstring varchar(8000)

)returns bit

with encryption

asbegin

declare @vjudge int

set @vjudge = 0

select @vjudge = 

case 

when patindex('%[0-9]%', lower(@pstring)) > 0 then 0

when patindex('%[0-9]%', lower(@pstring)) = 0 then 1

endreturn @vjudge

end4.函式判斷字串只包含字母(忽略大小寫)

create function [dbo].fn_isalpha

(@pstring varchar(8000)

)returns bit

with encryption

asbegin

declare @vjudge int

set @vjudge = 0

select @vjudge = 

case 

when patindex('%[a-z]%', lower(@pstring)) > 0 then 0

when patindex('%[a-z]%', lower(@pstring)) = 0 then 1

endreturn @vjudge

end5. 函式判斷字串不包含任何符號(包括空格)

create function [dbo].fn_isalphanumeric

(@pstring varchar(8000)

)returns bit

with encryption

asbegin

declare @vjudge int

set @vjudge = 0

select @vjudge = 

case 

when patindex('%[^a-z0-9]%', lower(@pstring)) > 0 then 0

when patindex('%[^a-z0-9]%', lower(@pstring)) = 0 then 1

endreturn @vjudge

end6. 函式判斷字串不包含任何符號(除空格外)

create function [dbo].fn_isalphanumericblank

(@pstring varchar(8000)

)returns bit

with encryption

asbegin

declare @vjudge int

set @vjudge = 0

select @vjudge = 

case 

when patindex('%[^a-z0-9 ]%', lower(@pstring)) > 0 then 0

when patindex('%[^a-z0-9 ]%', lower(@pstring)) = 0 then 1

endreturn @vjudge

end-- 注意:[^a-z0-9 ]模式中最後有乙個空格。

用charindex()——charindex(字元,字串)>0 –>包含

SQL中判斷字串中包含字元的方法

通過2個函式charindex和patindex以及萬用字元的靈活使用 函式 charindex和patindex charindex 查某字元 串 是否包含在其他字串中,返回字串中指定表示式的起始位置。patindex 查某字元 串 是否包含在其他字串中,返回指定表示式中某模式第一次出現的起始位置...

SQL中判斷字串中包含字元的方法

通過2個函式charindex和patindex以及萬用字元的靈活使用 函式 charindex和patindex charindex 查某字元 串 是否包含在其他字串中,返回字串中指定表示式的起始位置。patindex 查某字元 串 是否包含在其他字串中,返回指定表示式中某模式第一次出現的起始位置...

SQL中判斷字串中包含字元的方法

通過2個函式charindex和patindex以及萬用字元的靈活使用 函式 charindex和patindex charindex 查某字元 串 是否包含在其他字串中,返回字串中指定表示式的起始位置。patindex 查某字元 串 是否包含在其他字串中,返回指定表示式中某模式第一次出現的起始位置...