当前位置: 首页 > 面试题库 >

SQL Server T-SQL中的REGEXP_LIKE转换

詹钊
2023-03-14
问题内容

我在需要转换为SQL Server的旧报表中遇到了这一行。

REGEXP_LIKE (examCodes, learner_code)

ExamCodes是源代码,而learninger_code是模式。我知道SQL
Server没有REGEXP_LIKE,大多数地方都告诉您使用PATINDEX。

我在想这会起作用:

PATINDEX(learner_code, examCodes)

但是我得到了错误:

Msg 4145, Level 15, State 1, Line 54
An expression of non-boolean type specified in a context where a condition is expected, near 'WHERE'.

在MSDN上,语法指定为

PATINDEX ('%pattern%',expression)

但是learninger_code是一个字段,我无法指定模式吗?

我最初没有写此报告,所以我还是对它正在寻找的模式感到困惑。

非常感谢


问题答案:
WHERE PATINDEX ('%pattern%',expression)  !=0

如果找到了pattern,那么PATINDEX返回非零值,您需要在WHERE子句中进行比较。一个WHERE子句必须跟比较的操作,返回真/假。

可能是您在不进行比较的情况下使用了PATINDEX,这就是为什么错误消息在WHERE子句附近显示非布尔表达式。

用通配符搜索模式 学习者代码

WHERE PATINDEX ('%' + CAST(learner_code AS VARCHAR) +'%',examCodes)  !=0


 类似资料:
  • 问题内容: 我正在使用和。我以前在sql中使用过正则表达式,现在是我第一次在HQL中使用它。 这是我的hql,当我不带功能运行它时,它按预期运行。但是我不能用表达式执行它。 它说.. 嵌套的异常是org.hibernate.hql.ast.QuerySyntaxException:意外的AST节点:(靠近第1行,第66列..... 请帮助,如何在hibernate本机查询中使用?或其他替代方法。

  • 我正在使用oracle 10g和hibernate 3.3.2。我以前在sql中使用过正则表达式,现在我第一次在HQL中使用它。 这是我的hql,当我在没有类似regex_的函数的情况下运行它时,它会按预期运行。但我无法用类似正则表达式的表达式执行它。 它说... 嵌套异常是org.hibernate.hql.ast.QuerySynTaxException:意外的AST节点:(靠近第1行,第66

  • 本文向大家介绍SQL中的转换函数,包括了SQL中的转换函数的使用技巧和注意事项,需要的朋友参考一下 有时,SQL查询可能期望某种数据类型,但是却得到了另一种。在这种情况下,类型转换由SQL完成。这是隐式类型转换。但是,有时程序员在查询中将一种数据类型显式转换为另一种数据类型。这称为显式类型转换。这两个详细信息如下: 隐式数据类型转换 在隐式数据类型转换中,SQL程序员不指定任何内容。而是系统根据其

  • 我有一个带有日期字段的表,在DDL中ORDERDATE被设置为date。 在表中,日期如下所示: 非常感谢您的帮助,我期待您的回应和学习错误! 非常感谢,AJ

  • 问题内容: 我正在使用查询从存储为GMT的Oracle DB获取一些应用程序的“接收日期”。现在,我必须在检索时将其转换为东部标准/夏令时。我为此使用以下查询: 它适合标准时间。但是,为了节省夏时制,我们需要根据时区信息将其转换为“ edt”。我不确定如何执行此操作。请帮帮我 问题答案: 您可以使用此查询,而不必担心时区更改。 前任: 美东时间: 美东时间: 更新: 感谢Alex Poole提醒您

  • 问题内容: 我需要传递一个可以使用转换的对象。查询如下所示: 为了传递可以转换为json的HttpResponse对象,我从这里需要做什么? 问题答案: 好吧,如果您只是这样做: 你会得到一个数组数组… 另一种方法是使用: 这将为您提供一个带有索引的json对象… 如果那不是您想要的,那么您需要指定结果的显示方式…