gpt4 book ai didi

sql - where 子句中的列别名给出无效的列名错误

转载 作者:行者123 更新时间:2023-12-02 06:58:32 24 4
gpt4 key购买 nike

这是一个我被挂断的简单问题。我想知道我是否可以创建一个列别名,然后在我的 WHERE 子句中使用它,即:

SELECT TRACTOR, CONVERT(VARCHAR, ORDER) AS NUMBER
FROM TABLE
WHERE NUMBER = '4'

请记住,这只是我尝试做的一个例子。我正在运行的查询有点复杂,但只是关于如何创建变量然后在子句中使用它的基本思想。

我的问题是关于 where 子句中的别名列。我有一个查询,它在一个数据库中查找发票编号,并将其与另一个数据库中某个字段的前 7 位数字相匹配。当我们只有 6 位数字时查询工作正常,但现在我们有 7 位数字时,我遇到了一个错误,我正在尝试以不同的方式重写查询。

最佳答案

重用别名列是 CROSS APPLY 的一个很好的用例:

SELECT t.TRACTOR, CxA.Num
FROM TABLE t
CROSS APPLY
(SELECT CONVERT(VARCHAR(10), ORDER)) CxA(Num)
WHERE CxA.Num = '4'

CROSS APPLY 中的任何内容都可以在 SELECTWHEREORDER BY 等中引用一些限制(通常如果您在 CROSS APPLY 表达式中有聚合)。

关于sql - where 子句中的列别名给出无效的列名错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26368922/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com