• MSSQL表别名使用注意事项


     1.在SQL语句中一旦指定了表别名,则不能再使用"表名称.列名"格式,只能使用"表别名.列名"格式来引用列.

    2.在SQL主句中使用子查询中的列时,必须为子查询指定一个表别名,然后以"表别名.列名"的格式来应用子查询中的列.当SQL主句的FROM子句仅为一个子查询时,必须为该子查询指定一个表别名,否则SQL语句无法执行.例如:
    SELECT ID FROM (select e.ID from employee as e  where (e.年度 = 2000) AND (e.月份 = 3))
    提示: ')' 附近有语法错误。正确的应该为:
    SELECT ID FROM (select e.ID from employee as e  where (e.年度 = 2000) AND (e.月份 = 3)) AS X

    3.子查询中使用了"表别名.列名"来引用列时,若此表别名在子查询和SQL主句中都不存在,则导致SQL语句无法执行.例如:
    SELECT ID FROM (select e.ID from employee  where (e.年度 = 2000) AND (e.月份 = 3)) AS X
    提示: 列前缀 'e' 与查询中所用的表名或别名不匹配。
    如果SQL主句中存在此表别名,则错误不会发生,但会导致无法预料的结果(通常导致该子查询返回结果为空).例如:
    SELECT e.* FROM (select * from sales as e where (e.年度 = 2006) and (e.月份 = 3)) AS e 
    WHERE (e.员工号 NOT IN (select e.员工号 from sales  where (e.年度 = 2000) AND (e.月份 = 3)))
    此SQL语句执行后,导致主句的WHERE子句的子查询返回空值,使WHERE子句结果为真,筛选实效.
    正确的为:
    SELECT e.* FROM (select * from sales as e where (e.年度 = 2006) and (e.月份 = 3)) AS e 
    WHERE (e.员工号 NOT IN (select e.员工号 from sales as e where (e.年度 = 2000) AND (e.月份 = 3)))
  • 相关阅读:
    圆桌十日冲刺之五
    圆桌十日冲刺之四
    圆桌十日冲刺之三
    圆桌十日冲刺之二
    圆桌十日冲刺之一
    圆桌的项目Alpha冲刺——测试
    圆桌的项目Alpha冲刺(团队)
    团队作业,随堂小测——校友录
    《软件工程实践》第七次作业——项目需求分析(团队)
    软工实践团队汇总
  • 原文地址:https://www.cnblogs.com/fjchenqian/p/1381601.html
Copyright © 2020-2023  润新知