在CONTAINS谓词中使用REPLACE()函数

时间:2016-03-14 21:31:00

标签: sql sql-server

我想知道是否可以在REPLACE()谓词中使用CONTAINS

例如,我知道我是否使用:

 SELECT * FROM table WHERE CONTAINS(column, 'searchWord')

没有任何问题;但是,如果我使用:

SELECT * FROM table WHERE CONTAINS(REPLACE(column, 'oldPhrase', 'newPhrase'), 'searchWord')

它会给我一个错误,因为它需要一个列而不是一个字符串。如果没有办法做到这一点,那么最好的替代方案是什么?

1 个答案:

答案 0 :(得分:1)

你尝试过CTE吗?

WITH r AS (
    SELECT column0, column1, column2,
           REPLACE(column, 'oldPhrase', 'newPhrase') col
      FROM table
)
SELECT * 
    FROM r 
    WHERE CONTAINS(col, 'searchWord');