1 0

Oracle别名使用问题0

表结构与表数据:
create table fruit(fruitname varchar2(20),product varchar2(20),price varchar2(20));
insert into fruit values('apple','china','12');
insert into fruit values('apple','japan','22');
insert into fruit values('apple','usa','33');
insert into fruit values('orange','china','10');
insert into fruit values('banana','china','31');
insert into fruit values('peach','usa','30');

问题:
1> select fruitname f from fruit where f='apple'; //无效的标识符
2> select fruitname f from fruit where fruitname='apple'; //正确
3> select fruitname,count(*) c from fruit group by fruitname having c>0; //无效的标识符
4> select fruitname,count(*) c from fruit group by fruitname having count(*)>0; //正确
5> select fruitname,count(*) c from fruit group by fruitname having count(*)>0 order by c; //正确


上述五个问题的运行结果为什么是那样,请解释下?

在from子句中为表指定了别名,表的实际名称是不是被覆盖了?

2012年8月13日 17:36

2个答案 按时间排序 按投票排序

0 0

采纳的答案

Oracle中的sql语句,
1.where/group by/having子句中只能直接使用栏位或者常量,而不能使用栏位的别名,除非这个别名来自子查询之中,如:select .... from (select col1 ccc from table) where ccc > 1
2.而order by 则可以直接使用别名,如select col1 ccc from table order by ccc

这和sql 的执行顺序是有关的,where中的部分先执行 -> 如果有group by,接着执行group by -> select中的函数计算、别名指定再运行-> 最后order by
因此,字段、表达式的别名在where子句和group by子句都是不能使用的,而在order by中不仅可以使用别名,甚至可以直接使用栏位的下标来进行排序,如:order by 1 desc,2 asc

2012年8月14日 10:41
0 0

select fruitname f from fruit where f='apple';
f是返回值上的欄位名稱,如果你想用表的別名
select fruitname f from fruit f where f.fruitname='apple';

2012年8月13日 18:23

相关推荐

    附件2:Oracle客户端实例别名配置.docx

    ### Oracle客户端实例别名配置详解 #### 一、配置实例别名的重要性 在日常的数据库管理工作中,我们经常需要使用`sqlplus`等工具连接到不同的Oracle数据库实例。按照传统的方式,每次登录都需要手动输入目标数据库...

    ORACLE_SQLDeveloper使用教程

    ### Oracle SQL Developer 使用教程 #### 一、Oracle Database Home Page 的使用 在开始介绍 Oracle SQL Developer 的使用之前,我们先来看看如何使用 Oracle Database Home Page。这部分内容非常重要,因为它是...

    22.Oracle的别名1

    在 Oracle 数据库中,别名(Alias)是一个非常基础但重要的概念,它允许我们为表名和列名赋予临时的、易读的名称。别名主要用于简化查询语句,提高可读性,尤其是在复杂的多表联接或者嵌套查询中。在本篇中,我们将...

    Oracle数据库常见问题诊断

    Oracle数据库常见问题诊断 Oracle数据库是目前最流行的关系数据库管理系统之一,但是在实际应用中,会出现一些常见的问题,这些问题可能会影响数据库的性能和稳定性。以下是Oracle数据库常见问题诊断中的一些典型...

    SqlDbx连接oracle

    本篇将详细介绍如何使用SqlDbx连接到Oracle数据库,以及涉及的相关文件及其作用。 首先,连接Oracle数据库通常需要Oracle客户端软件,但这里提到的“Sqldbx连接oracle,不用安装client”,意味着SqlDbx可能通过一种...

    Oracle性能问题总结

    * 使用表的别名可以减少解析的时间并避免引起歧义 * 使用 exists 替代 in * 用 NOT EXISTS 替代 NOT IN * 通常情况下,采用表连接的方式比 exists 更有效率 * 当提交一个包含一对多表信息(比如部门表和雇员表)的...

    Oracle基本工具使用

    9. 计算列和别名:可以创建计算列(如年收入),并使用AS关键字为列设置别名。 10. IN运算符:查询工种为特定值(如clerk, salesman, manager)的员工。 图形工具的使用则包括了更直观的数据库管理: 1. 创建...

    oracle存储过程学习经典入门

    Oracle 存储过程学习目录是 Oracle 存储过程学习的基础知识,了解 Oracle 存储过程的基本语法、基础知识和一些常见问题的解决方法是非常重要的。本文将从 Oracle 存储过程的基础知识开始,逐步深入到 Oracle 存储...

    vs2015连接oracle数据连接不上问题

    在Windows 10环境下使用Visual Studio 2015 (VS2015) 进行开发时,有时可能会遇到无法连接到Oracle数据库的问题。这个问题通常是由于安装不当、配置不正确或依赖组件缺失引起的。以下是一份详细的解决步骤和相关知识...

    oracle_sql使用.docx

    在大型事务中,适当使用COMMIT以改善性能,并在可能的情况下,为表连接使用别名以减少解析时间。 总的来说,理解和熟练运用这些Oracle SQL的技巧和知识点,将有助于编写出更高效、更准确的SQL查询,从而更好地管理...

    Oracle学习资源与使用

    Oracle学习资源与使用 Oracle是一种关系数据库管理系统(RDBMS),由Oracle Corporation开发。它是最流行的数据库管理系统之一,广泛应用于企业级应用中。下面是Oracle学习资源与使用的知识点总结: 概述 Oracle...

    Oracle 教程 Oracle Server

    1. Internal:这不是一个独立的用户名,而是SYS用户的别名,拥有SYSDBA权限,主要用于DBA执行数据库管理任务,如启动和关闭数据库。 2. Sys:这是一个DBA用户,拥有最大的数据库操作权限,用于系统级别的管理。 3. ...

    oracle10g-oracle11g的数据库迁移

    源主机需要新建 Oracle 别名目录,并赋予 oracle 用户读写权限。在目标主机上,需要新建表空间、用户,并赋予数据库权限和读写权限。 知识点1: 数据库迁移前的准备工作 在进行数据库迁移之前,需要对源主机和目标...

    Oracle使用指南

    Oracle 使用指南是一个面向数据库管理初学者或需要对Oracle进行日常操作的人员的参考资料。这篇指南主要涵盖Oracle数据库的基本查询操作,包括SQL语句的构造、算术表达式、列的别名、连接操作以及处理重复数据的方法...

    在不安装Oracle客户端 使用32位PLSQL远程Oracle_64位的方法

    - **环境兼容性**:确保使用的PL/SQL Developer版本与Instant Client版本相匹配,避免因版本不一致导致的连接问题。 - **系统变量设置**:有时可能还需要设置系统环境变量(如`TNS_ADMIN`)指向TNS别名文件的位置,...

    oracle11客户端免安装

    总之,"oracle11客户端免安装"是为了解决只依赖Oracle客户端组件而不需要完整安装的情况,尤其是对于PL/SQL Developer等工具的使用者,通过这个方法可以快速解决无法连接数据库的问题。正确配置和使用Oracle Instant...

    Oracle64客户端解压后就可以使用

    4. **Oracle Provider for OLE DB**: 该组件允许Windows应用程序使用OLE DB接口访问Oracle数据库。它是许多.NET和VB6应用连接Oracle的常用方式。 5. **Database Connectivity Files (TNSNAMES.ORA, listener.ora)**...

    Oracle 数据库应用:第13章 配置Oracle互联.ppt

    此外,还需要配置Oracle Net服务别名,这使得客户端可以使用友好的名称来连接数据库,而不是直接使用IP地址和端口号。服务别名简化了连接过程,使得在多个数据库实例之间切换变得更加容易。 为了测试Oracle Net的...

    Toad For Oracle12.5使用手册

    - 利用高级模板和使用别名来提高编码效率 - 进行SQL调优和使用查询生成器来提升数据库性能 6. 用户支持和维护 使用手册强调了用户在使用Toad for Oracle的过程中应当遵守的规则和限制: - 软件许可和保密协议的...

Global site tag (gtag.js) - Google Analytics