当前位置:  开发笔记 > 数据库 > 正文

如何在SQL中引用自定义字段

如何解决《如何在SQL中引用自定义字段》经验,为你挑选了2个好方法。

我正在使用mssql并且在使用子查询时遇到问题.真正的查询非常复杂,但它具有与此相同的结构:

select 
  customerName, 
  customerId,
  (
    select count(*) 
    from Purchases 
    where Purchases.customerId=customerData.customerId
  ) as numberTransactions
from customerData

我想要做的是按交易次数排序表,但是当我使用时

order by numberTransactions

它告诉我没有这样的领域.是否有可能做到这一点?我应该使用某种特殊的关键字,例如this,或self



1> Jonathan Rup..:

使用字段编号,在这种情况下:

order by 3


如果您的查询将来发生变化,这是一种非常糟糕的方法.明确你的选择几乎总是比基于普通性的隐含更好

2> Amy B..:

有时您必须与SQL的语法(预期的子句范围)搏斗

SELECT *
FROM
(
select
  customerName,
  customerId,
  (
    select count(*)
    from Purchases
    where Purchases.customerId=customerData.customerId
  ) as numberTransactions
from customerData
) as sub
order by sub.numberTransactions

此外,使用JOIN的解决方案是正确的.查看查询计划,SQL Server应为这两种解决方案提供相同的计划.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有