t-sql - 在SELECT中调用用户定义的函数,也使用WHERE中的值,我不想调用该函数两次

标签 t-sql select where-clause

使用 TSQL,如何通过首先在 SELECT 子句中调用用户定义函数,然后在 WHERE 子句中引用结果来从用户定义函数中获取值?我尝试为结果创建别名,但无法解析名称

SELECT C.dbo.myFunction(n.first, n.last) AS result, <other columns>
FROM C.dbo.Names AS n, <other tables>
WHERE result > 10 AND <other conditions>

我的做法正确吗?

最佳答案

不能在 WHERE 子句中使用列别名。您可以尝试以下操作:

SELECT s.*
FROM 
    (SELECT C.dbo.myFunction(n.first, n.last) AS result, <other columns>
    FROM C.dbo.Names AS n, <other tables>) s
WHERE s.result > 10 AND <other conditions>

关于t-sql - 在SELECT中调用用户定义的函数,也使用WHERE中的值,我不想调用该函数两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18151729/

相关文章:

jQuery - 轻松授予选择框自动完成功能的任何好方法

mysql - Laravel 中不存在的地方

MySQL SELECT 不适用于包含换行符的文本

MYSQL WHERE 子句 : WHERE 'X' Exclude?

sql-server - 选择并更新; SQL服务器

sql-server - 如何验证数据列表中的范围不重叠?

javascript - 在选择中批量替换选项 html 字符串?

sql-server-2008 - 在 IF 子句中创建临时表

sql-server - SQL : Count Distinct and Combine Similarly-Named

Mysql 获取分组的两个表列的总和