㈠ 使用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的格式,再放到你的查询语句去就是了~