sql判断字符
⑴ sql判断字符是否在字符串中,字符串用,隔开
在SQL中判断一个字符是否存在于用逗号分隔的字符串中,可以通过多种方法实现。例如,可以使用 EXISTS 子查询来检查特定字符是否存在于字段中。例如,如果需要检查表中是否存在特定值 'aa',可以编写如下查询:
如果存在字段 aa 为 'aa' 的记录,或者字段 bb 为 'aa' 的记录,或者字段 cc 为 'aa' 的记录,则输出 'exists aa';否则输出 'Not exists aa'。
具体实现如下:
sql
if exists(select 1 from table where aa='aa' ) or exists(select 1 from table where bb='aa' ) or exists(select 1 from table where cc='aa' )
print 'exists aa'
else
print 'Not exists aa'
判断字符串中是否存在逗号,可以使用 CHARINDEX 函数。例如,如果需要检查某个字段中是否包含逗号,可以使用如下查询:
sql
select * from table where charindex(',', MName) > 0
逐条记录处理可以用游标,但这种方式效率较低,通常不推荐。更好的方法是直接在查询中处理这些逻辑。
具体实现中,可以使用 LEFT 和 CHARINDEX 的组合来检查特定前缀。例如,如果需要检查 MName 字段是否以 'aa' 开头,并且 ISDel 字段是否以 '1' 开头,可以编写如下查询:
sql
select * from table where left(MName,charindex(',',MName)-1) ='aa' and left(ISDel,charindex(',',ISDel)-1) ='1'
以上查询将返回所有符合特定条件的记录。
⑵ sql判断一个字符串是否是数字
如果是ORACLE,可以:
select translate(str,'x1234567890','x') from al,如果得到的是空则是数字,如果不是空,则是带字符串的。
⑶ MySQL、SQLServer判断字符串是否包含某字符
MySQL:
在MySQL中使用FIND_IN_SET( st , str )函数来判断某个字符串是否包含某字符。其中,st表示需要判断的字符,str表示相应的字符串字段。如果包含,则返回st字符在字符串中的位置,以1为起点。如果不包含,则返回0;
SQLServer:
在SQLServer中使用CHARINDEX(','+ st +',' , ','+ str +',')函数来判断某个字符串是否包含某字符。其中,st表示需要判断的字符,str表示相应的字符串字段。如果包含,则返回st字符在字符串中的位置,以1为起点。如果不包含,则返回0;
注意:在SQLServer函数中,st必须为字符串,使用int则无效,如果是数字类型字符,必须使用双引号。