加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

计算列上的T-SQL列别名 – 无效的列名称

发布时间:2020-12-12 06:52:41 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用别名来引用计算列.这是我正在努力工作的实际代码的片段,用于计算相似性并返回相似性得分为3或更高的匹配. select [FirstName],difference([FirstName],'mitch') as similarityfrom [Dev].[dbo].[Name]where similarity 2order by similarity desc
我正在使用别名来引用计算列.这是我正在努力工作的实际代码的片段,用于计算相似性并返回相似性得分为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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读