Sql 列别名的不同方法

Sql 列别名的不同方法,sql,alias,Sql,Alias,两者的区别是什么 select empName as EmployeeName from employees 对 select EmployeeName = empName from employees 从技术角度来看。不确定这是否只是特定于SQL server 感谢您的回答。第二种语法的主要优点是它允许列别名全部对齐,这对长表达式很有好处 SELECT foo, bar, baz = ROW_NUMBER() OVER (PARTITION BY foo O

两者的区别是什么

select  empName as EmployeeName from employees

select  EmployeeName = empName from employees
从技术角度来看。不确定这是否只是特定于SQL server


感谢您的回答。

第二种语法的主要优点是它允许列别名全部对齐,这对长表达式很有好处

SELECT foo,
       bar,
       baz = ROW_NUMBER() OVER (PARTITION BY foo ORDER BY bar)
FROM T

我认为没有技术上的区别。主要是优惠。我选择第二种方法,因为它更容易在大型查询中发现列,尤其是在查询正确缩进的情况下。

我更喜欢第一种方法,因为第二种方法不可移植-

select  EmployeeName = empName from employees
是一个语法错误(至少在SQLite和Oracle中是这样),或者它可能无法提供您期望的结果(比较EmployeeName和empName两列,并以布尔/整数形式返回比较结果),而

  select  empName as EmployeeName from employees

哪一种是我首选的变体。

既然SQL不关心空格,你就不能在这两种情况下排列它们吗?@Alison R。你可以这样做,但需要做更多的工作来生成空格。另外,如果数据项发生了变化,则必须调整空白again@Alison-是的。“Allow”是一个错误的词,但在我的示例中,它的意思是
baz
,换行成两行。一个是表达式,另一个是别名。作为记录,我多年来一直使用第一个首选项,但这一点让我三思!如果所有列都有别名,我会使用第二种语法。如果只有少数人是,我在阅读时会感到困惑,试图弄清楚给定的行是以返回的数据开头,还是仅以别名开头。是否确定
select EmployeeName from employees
is valid sql?@Jon如果EmployeeName是表中列的名称,是的,我非常确定它是有效的sql:-)语法有效,但我认为弗兰克·施密特把我之前的查询结果搞混了。表中的列是empName,而输出应别名为EmployeeName,因此语法为“从雇员中选择empName EmployeeName”是正确的SQL。@ManiP-不错的一个-我以为我疯了!
  select  empName as EmployeeName from employees