首页 > 编程知识 正文

sql中nvl的用法,sql判断字段里是否含有这个字符

时间:2023-05-06 14:49:46 阅读:147872 作者:2296

CHARINDEX作用

要写SQL语句,必须确定一个字符串是否包含另一个字符串,但SQL SERVER不像C#那样提供Contains函数。 但是,SQL SERVER提供了一个名为CHAEINDX的函数。 顾名思义,就是找到字符“char”的位置“index”,所以当然可以判断其位置。

如果在CHARINDEX中找到对应的字符串,则返回该字符串的位置,否则返回0。

基本语法如下。

CHARINDEX (expressionToFind , expressionToSearch [ , start_location ] )

expressionToFind :目标字符串。 要找到的字符串,最大长度为8000。

expressionToSearch :用于搜索的字符串。

start_location :开始搜索的位置。 如果为空,则默认从第一位开始搜索。

CHAEINDEX示例

1 .简单用法

selectcharindex('test ',' this Test is Test ' ) )。

查询结果:

2 .增加起始位置

selectcharindex('test ',' this Test is Test ',7 ) )。

查询结果:

3 .大小写敏感

selectcharindex('test ',' thistestistest ' collate latin1 _ general _ cs _ as ) )

查询结果:

结果是0吗? 不要怀疑你的眼睛。 由于大小写敏感,找不到test,所以返回的是0。 在简单的示例中,结果不为0,因为缺省情况下SQL SERVER对大小不敏感。 但是,由于可能需要特别区分大小写,因此专用的SQL SERVE提供了查询时区分大小写的特殊关键字。 其中,CS为Case-Sensitve的

4 .大小写不敏感

selectcharindex('test ',' thistestistest ' collate latin1 _ general _ ci _ as ) )。

查询结果:

也可以说明这样不区分大小写。 其中,CI是Case-InSensitve的缩写。 这意味着不区分大小写。 当然,你不需要多管闲事。

 

PATINDEX

与CHARINDEX类似,PATINDEX也可用于确定一个字符串是否包含另一个字符串。 两者的区别在于前者完全一致,后者支持模糊匹配。

1 .简单的例子

选择属性(“% ter %”,“interesting data”)。

查询结果:

2 .简单示例2

选择属性(“% t _ ng %”,“interesting data”)

查询结果:

PATINDEX还可以支持区分大小写。 这和CHARINDEX一样。 这里省略说明。

参考:

3359 docs.Microsoft.com/en-us/SQL/t-SQL/functions/charindex-transact-SQL

3359 docs.Microsoft.com/en-us/SQL/t-SQL/functions/patindex-transact-SQL

转载于:https://www.cn blogs.com/qianxingdewoniu/p/6858580.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。