我可以在sqlserver内部转换containsregex吗?

时间:2012-06-07 14:18:45

标签: sql sql-server

我正在为mssql使用较旧的PHP驱动程序,并尝试使用ContainsRegExp命令过滤掉结果。问题是我正在比较的字段是ntext,它会导致查询失败。是否可以在ContainsRegExp命令中执行强制转换,例如:

... AND Field1.ContainsRegExp(CAST(Field1 AS TEXT) AS Field1Test,\'html\')=1';

完整的查询语句:

'SELECT ReportID, ReportDate, CAST(ReportData AS TEXT) AS TextData FROM Database WHERE ReportData.ContainsRegExp(CAST(ReportData AS TEXT),\'html\')=1';

我看到的错误是:

message: Cannot call methods on ntext. (severity 15)

1 个答案:

答案 0 :(得分:1)

ContainsRegExp不是标准的SQL Server命令。所以我不确定你是如何得出那个声明的,但它不是T-SQL。

我的猜测是,在某个地方,类似的命令已经与CLR类型一起使用 - 因为您使用的语法(Field.Operation())用于调用CLR类型的方法。