我正在使用别名来引用计算列.这是我正在努力工作的实际代码的片段,用于计算相似性并返回相似性得分为3或更高的匹配.
select [FirstName],difference([FirstName],'mitch') as similarity from [Dev].[dbo].[Name] where similarity > 2 order by similarity desc
错误:
Invalid column name 'similarity'.
由于相似性不是一个真正的专栏,我将如何使这项工作?
解决方法
列别名和计算在查询的投影(SELECT)阶段执行,该阶段发生在选择(WHERE和JOIN)阶段之后.因此,它们不能在WHERE子句或JOIN条件中引用,因为它们尚不存在.您可以将查询与SELECT子句一起用作子查询,也可以在WHERE子句中复制计算:
select * from (select [FirstName],'mitch') as similarity from [Dev].[dbo].[Name]) src where similarity > 2 order by similarity desc
要么
select [FirstName],'mitch') as similarity from [Dev].[dbo].[Name] where difference([FirstName],'mitch') > 2 order by similarity desc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。