PostgreSQL中vi.*的作用是什么?省略AS定义别名是否为通用做法?
问题解答
1. vi.* 的作用
vi 是表 vistas_por_jose 的别名,vi.* 表示选中该别名对应表的所有列。
在你的查询里,它会把 vistas_por_jose 表的每一列都包含在查询结果中,再加上后面通过 coalesce(ordenes, 0) 生成的列,共同组成最终的结果集。
2. 省略 AS 定义表别名是否属于通用做法
这完全是通用且合法的做法:
- SQL 标准允许直接在表名后跟上别名,无需
AS关键字,PostgreSQL 自然支持这种写法。 - 不仅是 PostgreSQL,像 MySQL、SQL Server、Oracle 等主流关系型数据库,都支持省略
AS来定义表别名。 - 当然你也可以加上
AS(比如from vistas_por_jose AS vi),两种写法功能完全一致,只是个人编码习惯的差异。
原查询代码
select vi.* , coalesce(ordenes, 0) from vistas_por_jose vi left join ventas ve on vi.store_id = ve.store_id
内容的提问来源于stack exchange,提问作者Juan Jose Vargas Estevez
相关产品推荐
相关产品推荐

