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 的起始位置開始搜索。