㈠ 使用sql函數檢測字元串是否存在對應的字串問題,。
--2.
使用LIKE或者PATINDEX進行
編號
查詢
--查詢的值列表
DECLARE
@idlist
varchar(100)
SET
@idlist='1,2,3'
--查詢
SELECT
*
FROM
tbname
WHERE
CHARINDEX(','+RTRIM(fdname)+',',','+@idlist+',')>0
SELECT
*
FROM
tbname
WHERE
PATINDEX('%,'+RTRIM(fdname)+',%',','+@idlist+',')>0
SELECT
*
FROM
tbname
WHERE
','+@idlist+','
LIKE
'%,'+RTRIM(fdname)+',%'
GO
這是一個較經典的
題目
。
㈡ 如何用 sql 判斷某些字元串是否存在 並替換啊
如果你的資料庫系統支持正則表達式的話,例如PostgreSQL,固然容易。但是像SQL Server這樣的,沒有正則表達式相關的原生函數,需要自己寫CLR函數來實現正則替換。
如果只是想替換掉{。。。}的話,可以用patindex函數找出第一個{號的位置,截取其左邊的子字元串;然後用charindex找出下一個}號的位置,截取其右邊的子字元串。將兩個子字元串合並,就能實現去掉{。。。}。如果想用新字元串替換掉{。。。},則只需要將新字元串與兩個截取到的子字元串合並就行了。
㈢ sql判斷字元串中是否包含某個字元串
select * from 表名 where 欄位 like %指定字元串%
㈣ sql判斷字元是否在字元串中,字元串用,隔開
select * from tablename where 欄位名 in ('aa')
這個就是用到了in關鍵字,同樣的還有not in關鍵字查詢的便是不包含某字元串的結果。
如果需要判斷是否在,如果在(或者不在)需要返回值的話,用is null關鍵字加一個判斷,判斷一下就可以了。
㈤ sql 怎麼判斷是否含有字元串
不知道您說的SQL是SQL語句還是 SQL資料庫,
如果是SQL語句就要分下資料庫了,
1.我這邊機器就安裝了mysql,查找包含某個字元串的語句是
SELECT * FROM 『表名』 WHERE LOCATE('包含的字元串',『欄位』) > 0
LOCATE返回子串substr在字元串str第一個出現的位置,如果substr不是在str裡面,返回0.
2.如果是SQL資料庫
SELECT * FROM 『表名』 WHERE charindex('包含的字元串',『欄位』) > 0
charindex 類似於 LOCATE 功能
㈥ sql如何在字元串里判斷是否有數字或者字母
判斷是否含有字母
select PATINDEX('%[A-Za-z]%', 『ads23432')=0
(如果存在字母,結果>1)
判斷是否含有數字
PATINDEX('%[0-9]%', 『234sdf')=0
(如果存在數字,結果>1)
㈦ sql語句,怎樣判斷一個欄位中是否存在某一個值
可以參考下面的描述:
INSTR(C1,C2,I,J)
在一個字元串中搜索指定的字元,返回發現指定的字元的位置;
C1 被搜索的字元串
C2 希望搜索的字元串
I 搜索的開始位置,默認為1
J 出現的位置,默認為1
SQL> select instr(』oracle traning』,』ra』,1,2) instring from al;
INSTRING
---------
9
(7)sql判斷字元是否存在擴展閱讀:
基本語句
MAX(欄位名) 取得一個表格欄最大的值
MIN(欄位名) 取得一個表格欄最小的值
SUM(欄位名) 把數據欄的值相加
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
㈧ 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
㈨ sql server的sql語句怎麼判斷一個欄位是否為空
使用 is null 或 is not null 來處理列的空值。
語法為:
列名 is null (欄位為空返回true ,不為空返回 false)
列名 is not null (欄位為空返回false,不為空返回 true)
例如:
select case when a is null then 1 else 0 end from aaa
語法大意:如果a列 為空顯示1,不為空顯示0。
(9)sql判斷字元是否存在擴展閱讀:
注意事項
欄位內容為空有兩種情況
1.為null
2.為字元串的空''
語句如下:
select * from table where column is null or trim(column)=''
這樣就可以排除欄位內容為null、''的。
判斷某個欄位不為空
select * from table where trim(column) != ''
曾經嘗試判斷null:is not null.但是不起作用,放棄。。。直接 trim(column) != '' 就能解決。
㈩ 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的格式,再放到你的查詢語句去就是了~