在应使用条件的上下文(在 'REGEXP' 附近)中指定了非布尔类型的表达式。
mssql 没有内置的 regexp,你需要自己添加 clr ,然后创建相关的自定义函数
https://blog.csdn.net/superwfei/article/details/6073866?spm=1001.2014.3001.5502
看起来您的 SQL 查询使用了一种不受支持的正则表达式语法(regexp)。这种语法可能不适用于您所使用的数据库。
数据库不支持 REGEXP 语法。我们可以尝试使用其他语法,例如 LIKE 或 RLIKE,进行匹配。例如:
SELECT bing FROM "2017" WHERE bing LIKE '%fu%';
或:
SELECT bing FROM "2017" WHERE bing RLIKE 'fu';
sqlserver 不支持 REGEXP 函数
1、sqlserver貌似不支持正则表达式,如果要实现这种功能,可以使用函数来替代。
2、数据库开发需要遵守一定规范,建议不要用中文表名和字段名。
请注意:SQL Server 没有 REGEXP 函数,但是可以使用类似正则表达式的语法进行模式匹配。SQL Server 中使用 LIKE 关键字进行模式匹配,可以使用通配符 % 和 _ 来表示任意字符和单个字符。例如:
SELECT * FROM table WHERE column LIKE '%abc%' -- 匹配包含 "abc" 的所有字符串
SELECT * FROM table WHERE column LIKE '_a%' -- 匹配第二个字符为 "a" 的所有字符串
如果需要更复杂的模式匹配,可以使用 SQL Server 内置的模式匹配函数,如 PATINDEX 和 CHARINDEX。此外,SQL Server 2017 及以上版本支持使用 CLR(公共语言运行时)扩展库,通过编写自定义正则表达式函数来实现正则表达式匹配功能。
路上说的很清楚了,sqlswrver不支持正则注意sql规范
这个错误通常是由于在使用正则表达式进行条件判断时,表达式的结果不是布尔值(true 或 false)。
为了解决这个问题,您可以检查您的正则表达式,确保它返回正确的布尔值。您还可以在判断语句中使用其他运算符,例如LIKE 或 IN,来达到相同的目的。
例如,下面是一个使用LIKE运算符的示例:
SELECT * FROM table_name WHERE column_name LIKE '%pattern%';
根据您描述的问题,在使用sql语句时使用正则表达式匹配报错了。这里推荐以下几种可能的解决方法:
1.把上面的like语句先注释掉或移除掉看看
2.regexp前后的空格是否有问题,尤其后面是否需要空格
3.where前面加空格
4.检查当前版本的数据库是否支持正则表达式
该错误表明在使用正则表达式时,条件(例如WHERE)中输入的表达式不是布尔类型的。
可能是由于拼写错误、语法错误或未正确分隔参数(如括号)导致的。
病案科设立工作组情况 加上双引号 "病案科设立工作组情况 加上双引号"
在where后面,假设不过一个Boolean类型的值或者Boolean类型的变量。那么where和这个Boolean值之间是不能够有空格的。
这个错误通常出现在使用正则表达式(REGEXP)的时候,正则表达式的使用必须要用到一个布尔类型的值,即true或false,而在您的代码中,可能在调用正则表达式时,提供了一个非布尔类型的表达式。
具体原因需要根据您的代码和上下文进行分析,可能的原因包括:
1、参数类型不匹配:某个函数需要一个布尔类型的参数,而您提供了一个非布尔类型的参数,导致类型不匹配,引发该错误。
2、语法错误:在正则表达式中,有些特殊字符需要进行转义,如果忘记转义,就会导致语法错误,从而引发该错误。
解决方法:
1、检查代码中正则表达式的使用,确认提供的参数类型是否正确,并且在使用特殊字符时是否进行了转义。
2、如果使用的是第三方库,检查库的文档,确认使用方法是否正确。
3、如果无法解决问题,可以将出错的代码和上下文提供出来,以便更准确地定位问题。