以下是我想要做的简化摘录:
SELECT StreetNumber + StreetName AS 'Address'
FROM TABLE
WHERE CONTAINS('Address', 'Street Name')
我意识到我不能在这里使用别名,因为WHERE子句是在SELECT子句之前计算的。
以下两种选择也不起作用:
1)
SELECT Street_Number + StreetName AS 'Address'
FROM TABLE
WHERE CONTAINS(CONCAT(StreetNumber, '', StreetName), 'Street Name')
2)
SELECT Street_Number + StreetName AS 'Address'
FROM TABLE
WHERE CONTAINS(StreetNumber + ' ' + StreetName), 'Street Name')
我该如何做到这一点?
答案 0 :(得分:1)
我通常用子查询来处理它。我不喜欢将代码中的concat或row_number分配的代码复制并粘贴到子句中,所以我会这样处理:
Select Address From
(
SELECT StreetNumber + StreetName AS 'Address'
FROM TABLE
) A
WHERE CONTAINS(Address, 'Street Name')
-- Or maybe you really want WHERE Address Like '%Street Name%'
我还认为阅读/维护此代码更容易。由于评论包含全文索引的作品,所以你真的可能正在寻找Charindex或Like。