當前位置:首頁 » 編程語言 » sql判斷字元串是否包含
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql判斷字元串是否包含

發布時間: 2023-06-08 16:22:52

1. 在sqlSERVER中如何檢測一個字元串中是否包含另一個字元

可以通過CHARINDEX()函數判斷另一個字元出現的位置

還可以通過REPLACE()函數替換後,再用LEN()函數比較替換前和替換後的字元串長度。

2. 怎樣判斷sql字元串中是否包含數字和字母

判斷否含字母
select PATINDEX('%[A-Za-z]%', 『ads23432')=0

(存字母結>1)
判斷否含數字
PATINDEX('%[0-9]%', 『234sdf')=0

(存數字結>1)

3. sql中比較一個字元串中是否含有另一個字元串中的一個字元

1、既然你要判斷其中一個是否包含了另一個,那你條件肯定要給SQL,SQL才能幫你找到的,2、這個條件肯定是你要給出的。比如首岩str1='1`2`3`4`5'str2='1`2`3`4'那你叫SQL判斷的橘爛其中的話,可以:Select
CharIndex('5',str1)
--這里的「5」具體要代入什麼值去判斷,就要你給出來了。Select
CharIndex('2`3',str1)
--這類的SQL是可以幫你去判斷的。不包含的話就返回0否則就返回第一個相同字元的位置,比如這個就返回3 給你寫一圓芹漏個函數來操作:
Create
function
fSearch(@inStr
varchar(1000),@fndStr
varchar(1000),@doc
varchar(10))

returns
bit

as

begin

declare
@ii
int,@rStr
varchar(1000),@c
varchar(1000)

select
@rStr=@fndStr

while
len(@rStr)>0

begin
Select
@ii=Charindex(@doc,@rStr)

if
@ii=0
begin

return
0
end
else
begin

select
@c=substring(@rStr,1,@ii-1)

if
charIndex(@c,@inStr)>0
return
1

else

begin
select
@rStr=substring(@rStr,@ii+len(@doc),len(@rStr))

end
end

end

return
0

end
--參數:@inStr
待搜索字串,@fndStr
搜索字串,@doc
分隔符--
例:select
dbo.fSearch('1,2,3,4,5,6','3,6,5,8,2',',')
返回0-不匹配,返回1-匹配(@instr中有@fndStr內容)--可以用於表搜索,如:--
Select
*,dbo.fSearch(str,'3,6,5,8,2',',')
as
是否匹配 from
表名--
@fndStr和@doc兩個參數就需要你自己提供了,@inStr可以是數據表裡的某個待搜索欄位名

4. sql 怎麼判斷一個字元串包含在另一個字元串

三、取子串函數
1、left()
LEFT(<character_expression>,<integer_expression>)
返回character_expression左起integer_expression個字元。
2、RIGHT()
RIGHT(<character_expression>,<integer_expression>)
返回character_expression右起integer_expression個字元。
3、SUBSTRING()
SUBSTRING(<expression>,<starting_position>,length)
返回從字元串左邊第starting_position個字元起length個字元的部分。

四、字元串比較函數
1、CHARINDEX()----這個應該是你想要的函數!!
返回字元串中某個指定的子串出現的開始位置。
CHARINDEX(<』substring_expression』>,<expression>)
其中substring_expression是所要查找的字元表達式,expression可為字元串也可為列名表達式。如果沒有發現子串,則返回0值。
此函數不能用於TEXT和IMAGE數據類型。
2、PATINDEX()
返回字元串中某個指定的子串出現的開始位置。
PATINDEX(<』%substring_expression%』>,<column_name>)其中子串表達式前後必須有百分號「%」否則返回值為0。
與CHARINDEX函數不同的是,PATINDEX函數的子串中可以使用通配符,且此函數可用於CHAR、VARCHAR和TEXT數據類型。

5. sql 判斷欄位中是否含有字元

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
AS
BEGIN
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
END
RETURN @vJudge
END

4.函數判斷字元串只包含字母(忽略大小寫)
CREATE FUNCTION [dbo].fn_IsAlpha
(
@pString VARCHAR(8000)
)
RETURNS bit
WITH ENCRYPTION
AS
BEGIN
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
END
RETURN @vJudge
END

5. 函數判斷字元串不包含任何符號(包括空格)
CREATE FUNCTION [dbo].fn_IsAlphanumeric
(
@pString VARCHAR(8000)
)
RETURNS bit
WITH ENCRYPTION
AS
BEGIN
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
END
RETURN @vJudge
END

6. 函數判斷字元串不包含任何符號(除空格外)
CREATE FUNCTION [dbo].fn_IsAlphanumericBlank
(
@pString VARCHAR(8000)
)
RETURNS bit
WITH ENCRYPTION
AS
BEGIN
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
END
RETURN @vJudge
END

6. SQL中如何判斷一個字元是否包含在表欄位中,而不是包含在表記錄中

Select
name
from
syscolumns
Where
ID=OBJECT_ID('表名')
這個可以查出你所查詢的表的所有欄位名字,如你所說你傳入個3個話可以寫
Select
name
from
syscolumns
Where
ID=OBJECT_ID('表名')
and
name
like
'%3%'
這樣返回就是這個表的欄位名包含3的欄位了,在程序里你自己把這些個欄位名取出來,拼成
欄位1,欄位2的格式,再放到你的查詢語句去就是了~

7. 在sql語句中怎麼判斷一個欄位是否包含在另一個字元串中

思路是,讀取B.name字元串後進行字元串的的分割 name.,然後最後執行模糊查詢A表,可以這樣


WHERE (A.nameLIKE '%查%') AND (A.nameLIKE '%體%')


只能說完全用sql語句實現,有點難吧!


string name = "查體";


char[] NameChar = name.ToArray();


string SqlStr = "select * from A ";


for (int i = 0; i < NameChar.Count(); i++)
{
if (i == 0)
{
SqlStr += "where A.name LIKE'%" + NameChar[0] + "%'";
}
else
{
SqlStr += " and A.name LIKE'%" + NameChar[i] + "%'";
}
}

可以告訴你,沒有關聯查一個表還行,兩個表都來不太可能。

8. sql中比較一個字元串中是否含有另一個字元串中的一個字元

sql中比較一個字元串中是否含有另一個字元或字元串可用charindex函數。

如:

selectcharindex('愛','我愛祖國')

結果為:

返回值為0,則代表「a」不存在於「我愛祖國」字元串中。



語法:

CHARINDEX ( expression1 , expression2 , [ start_location ] )

參數:

expression1

一個表達式,其中包含要尋找的字元的次序。expression1 是一個短字元數據類型分類的表達式。

expression2

一個表達式,通常是一個用於搜索指定序列的列。expression2 屬於字元串數據類型分類。

start_location

在 expression2 中搜索 expression1 時的起始字元位置。如果沒有給定 start_location,而是一個負數或零,則將從 expression2 的起始位置開始搜索。