热线电话:13121318867

登录
2023-06-14 阅读量: 629
CDA数据分析 L1模拟题 SQL列别名不能用于( )什么子句中?

题目:

在SQL语句中,设置别名可以增强代码的可读性,别名又分为表别名和列别名,其中列别名不能用于( )子句中。

A select

B where

C from

D join


答案: B


解析:

在SQL语句中,设置别名可以提高代码的可读性。别名分为表别名和列别名两种。表别名用于给表起一个简短的名称,以便在查询中引用该表时更加方便。

列别名用于给查询结果中的列起一个简短的名称,以便在后续的操作中引用该列时更加方便。

select 子句选取需要的列, 所以经常加列别名,from和join子句中经常加表别名 (例如select * from table1 t1 left join table2 t2 on t1.ID=t2.ID

"where"子句用于对from子句的表进行字段值筛选,根据指定的条件来过滤结果,应该使用原始列名而不是列别名来指定条件。)


因此,正确答案是B where。



情况补充:

where子句中一般不出现别名, 如果硬要在where子句中出现别名,也可以实现

下面的where子句就出现了表别名,并且执行不报错:

SELECT 员工编号 AS alias1, 姓名 AS alias2 FROM employees e1 WHERE e1.员工编号 = 1;

如下图所示:

image.png




from join 加了子查询表, 后面就可以有列别名 ,表别名, 不知道出题人是否这样想的, 如果不是这样, 那么from 不能出现列别名 同理join也不能出现


补充说明:

where在这种特殊情况下也能使用列别名:

外层查询可以在 WHERE 子句中使用内层查询(执行顺序先于外层查询)中生成的列别名

#例如下面的语句

#示例
SELECT *
FROM (
    SELECT column1 AS alias1, column2 AS alias2
    FROM table1
) AS subquery
WHERE alias1 = 'some_value';


总结
对于考试, 先按照考题解析的答案来记忆,实际工作遇到特殊问题,自己再具体问题具体处理


所以建议把这个题目修改为:其中列别名多用于( )子句中。 这样答案选A select ,没有争议

0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子