请教一个SELECT AS WHERE 语句(关于别名的)

来源:百度知道 编辑:UC知道 时间:2024/05/28 22:43:36
SELECT OrderID,OrderDate,CustomerID AS 'Client'
FROM Orders
WHERE Client = 'chops'
这是书上的一个反例,就错误的,原因:
如果使用AS赋给列一个别名并且在WHERE子句中使用该列,那么必须通过它的原名来引用,而不能使用别名。
可我在书的中间也看到一句说:如果AS子句是在数据保存的查询或者视图中,那么可以在WHERE子句后使用别名。
上例也算是查询吧(?),也就是说WHERE后可以用别名啊。
请教高手解释下
谢谢!
那本例是不能这样的是吧?
迷糊

理解错了
如果AS子句是在数据保存的查询或者视图中,那么可以在WHERE子句后使用别名。

--视图中的列名是查询的别名 所以在查询视图的时候用的列名也是别名

如 create view test as (SELECT OrderID,OrderDate,CustomerID AS Client FROM Orders )

那么在查询视图的时候就写成

select * from test where Client=123

这里的Client就是查询的别名