精华内容
下载资源
问答
  • oracle字段别名
    千次阅读
    2018-07-12 15:00:28
    在我们使用sql语句使用别名的时候,如果别名中包括如括号,运算符和引号之类的值的时候,操作数据的时候会出现错误,
    select 1 as ABC(AB) from dual;--这样会报错。
    select 1 as ABC-RH from dual;--这样会报错。

    修改为如下的话,就可以解决:

    select 1 as "ABC(AB)" from dual;--这样的不会报错。

    此类的情况针对程序自动生成别名的情况下特别注意。

    更多相关内容
  • oracle 字段别名

    千次阅读 2020-12-12 11:23:52
    像 type,level这些字眼都是oracle的保留字,在数据表设计的时候,应该避免将字段采用这样的保留字来命名,否则可能会产生一些异常,带来不便。 如果非要用来命名,该咋办呢?,可以用双引号将它引起来,比如 create...

    像 type,level这些字眼都是oracle的保留字,在数据表设计的时候,应该避免将字段采用这样的保留字来命名,否则可能会产生一些异常,带来不便。

    如果非要用来命名,该咋办呢?,可以用双引号将它引起来,比如

    create or replace view work.v_alert as
    select 0 as "type",--<--看这里----------
    to_char(id) as sid,
    to_date(time,'yyyy-MM-dd hh24:mi:ss')  as time,
    region,
    (case when hotspot>=1 and dhw>=8 then 5 
    when hotspot>=1 and dhw<8 and dhw>=4 then 4
    when hotspot>=1 and dhw<4 and dhw>0 then 3
    when hotspot<1 and hotspot>0 then 2
    else 1 end) as "level" --<--看这里----------
    from alert_anlysis 
    

    这样子命名,视图创建了是创建了,但使用过程中就有问题,比如这样用

    select count(*),level from work.v_alert v group by level
    

    就会报错,报ORA-01788。原因是level是保留字,oracle会特别处理。

    我又发现,假如别名用双引号引起来,使用也有问题。比如我将上述视图创建语句这样写:

    create or replace view work.v_alert as
    select 0 as "alert_type",--<--看这里----------
    to_char(id) as sid,
    to_date(time,'yyyy-MM-dd hh24:mi:ss')  as time,
    region,
    (case when hotspot>=1 and dhw>=8 then 5 
    when hotspot>=1 and dhw<8 and dhw>=4 then 4
    when hotspot>=1 and dhw<4 and dhw>0 then 3
    when hotspot<1 and hotspot>0 then 2
    else 1 end) as "alert_level" --<--看这里----------
    from alert_anlysis 
    

    但还是报错,说是无法辨认alert_level。

    select count(*),level from work.v_alert v group by alert_level
    

    应该改为

    select count(*),"alert_level" from work.v_alert v group by "alert_level"
    

    其实alert_level已经不是保留字,创建视图时就没必要再加双引号了,去掉即可。

    另外,在sql server里面,用别名比较简单,如

    select alert_type=0 from table1;
    

    就得到一个名为alert_type的字段,其值为0。但oracle对这类赋值别名,需要这样写:

    select 0 as alert_type from table1;
    
    展开全文
  • oracle 数据库设置表和字段别名

    千次阅读 2021-04-30 07:55:50
    select * from all_tab_cols-- 设置表别名COMMENT ON TABLE EMPLOYEE is '雇员';COMMENT ON TABLE PRODUCT is '产品';COMMENT ON TABLE PRODUCT_CLASS is '产品分类';COMMENT ON TABLE STORE is '商品';COMMENT ON ...

    select * from all_tab_cols

    -- 设置表别名

    COMMENT ON TABLE EMPLOYEE is '雇员';

    COMMENT ON TABLE PRODUCT is '产品';

    COMMENT ON TABLE PRODUCT_CLASS is '产品分类';

    COMMENT ON TABLE STORE is '商品';

    COMMENT ON TABLE TIME_BY_DAY is '时间转换';

    --设置字段别名

    COMMENT ON COLUMN PRODUCT.PRODUCT_CLASS_ID IS '产品分类代码';

    COMMENT ON COLUMN PRODUCT.PRODUCT_ID IS '产品代码';

    COMMENT ON COLUMN PRODUCT.BRAND_NAME IS '产品名称';

    --取得表别名

    SELECT

    t1.table_name as 表名

    ,t2.comments as 表别名

    FROM all_all_tables t1

    LEFT JOIN all_tab_comments t2

    ON t1.table_name=t2.table_name

    WHERE t1.table_name='EMPLOYEE'

    --取得字段别名

    SELECT

    t1.table_name as 表名

    ,t3.comments as 表别名

    ,t1.column_name as 字段名

    ,t2.comments as 字段别名

    FROM all_tab_cols t1

    LEFT JOIN all_tab_comments t3

    ON t1.table_name=t3.table_name

    LEFT JOIN all_col_comments t2

    ON t1.table_name=t2.table_name

    AND t1.column_name=t2.column_name

    WHERE t1.table_name='PRODUCT'

    展开全文
  • SELECT a.ID AS "id", a.SENSOR_ID AS "sensorId", a.START_TIME AS "startTime", ...然后查询了关于oracle别名的使用注意事项: where子句中只能直接使用栏位或者常量,而不能使用栏位的别名,除非这个别名来自子
    SELECT
    	a.ID AS "id",
    	a.SENSOR_ID AS "sensorId",
    	a.START_TIME AS "startTime",
    	a.END_TIME AS "endTime",
    	a.STATUS AS "status" 
    FROM
    	SENSOR_STATUS a 
    WHERE
    	1 = 1 
    ORDER BY
    	endTime
    

    结果:
    在这里插入图片描述
    然后查询了关于oracle的别名的使用注意事项:

    where子句中只能直接使用栏位或者常量,而不能使用栏位的别名,除非这个别名来自子查询之中

    而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

    展开全文
  • Oracle别名小结

    2021-05-01 11:43:41
    恩,此异常信息很明显,在SQL语句中标示符的长度过长了,简短一些就应该没问题了,我查看了一下我的SQL语句发现是我的查询字段的列别名过长,实际测试的结果为列字段别名的最大长度为30个字节!注意:我的测试数据库...
  • 问题现象使用下面语句查询得到的列别名是大写, 但是起的别名是小写, 没有达到我想要的效果select t.channel as id from T_CHANNEL_INFO t;解决方案select t.channel as "id" from T_CHANNEL_INFO t;Java中的使用sql....
  • 后记:发用这个方法可以实现使用Oracle的保留字作为字段 例如: SQL>create table zyp (LEVEL number(1), SQL> COLUMN varchar2(10)); ORA-00904:无效的标识符. SQL>create table zyp ("LEVEL" number(1), SQL> ...
  • ORACLE使用数字做别名

    2022-04-13 14:51:10
    ORACLE使用数字做为查询字段别名时要加双引号 “”,不能用两个单引号 ’ 拼起来。
  • oracle别名使用注意

    千次阅读 2021-05-08 18:31:45
    在sql查询中,合理的使用别名有很多好处一:使用别名的好处1)简化SQL语句的书写,特别是多表关联查询且表名较长时2)增强SQL语句的可读性,特别是当查询出来的列字段较为复杂时效果更为明显二.别名使用的注意事项1....
  • 今天才发现oracle中通过查询过程使用的别名是否使用双引号引起来的区别。第一种:SELECT t.XNXQ_ID as "semesterId", t.XNXQ as "semester", t.XN as "semesterYear"FROM T_SJZY_XNXQXX tORDER BY t.XNXQ ASC上面是...
  • Oracle别名大小写 -----解决方案发布时间:2020-08-01 19:34:48来源:51CTO阅读:2699作者:一排小牙印今天做bootstrap的treeview,要求输入节点ID id,父节点ID pid,文本 text但是执行的sql别名都是大写,所以找了...
  • 字段别名 --字段的别名的使用: select 字段名1 as 别名1,字段名2 as 别名2,...,字段名n as 别名n from 表名; 例①: --将deptno别名设为“部门编号”,dname别名设为“部门名称”,loc别名设为“位置” select ...
  • 这个简单无非查询一张表,查出接口想要的字段值,于是分分钟写出来了,但是在仔细看接口需求文档时发现,接口要求的结果每个字段名都带有前缀“.”。 例如: { &quot;xx.a&quot;:&quot;1&quot;, &...
  • Oracle学习2:别名&字符串拼接

    千次阅读 2017-12-19 16:40:33
    Oracle学习2:别名&字符串拼接
  • oracle数据库查询别名注意事项

    千次阅读 2017-12-28 13:33:48
    查询字段别名不带双引号会识别为大写,如果需要小写则需要双引号 select max(d.col_data) from tbl_oa_daily_data d where t.daily_id=d.daily_id order by xx) 注意此处已去最大某值,不能用order by
  • Oracle别名

    千次阅读 2019-07-10 12:07:50
    oracle中 不想使用数据库表中的字段名时 ,我们就可以采用起别名的方法,在oracle中有我知道的四种起别名的方法,接下来我就介绍一下哪四种? 第一种:别名不加分号 select 字段别名 from 表名 举例说明: ...
  • 文章目录 1 结论:使用双引号 " " 1 结论:使用双引号 " " 1. 解决办法:使用双引号 " " 2. 注意:不是 '' '' 哦(当个单引号) 示例: select '效率' "路程/时间" from dual;...select '效率' 路程/时间 from ...
  • 我需要从甲骨文另一个表显示一些领域,这里是我的查询使用WHERE子句中的子查询的别名Oracle中SELECTANGGARAN.SIMPEG_PEGAWAI.ID_PEGAWAI AS KODE,ANGGARAN.SIMPEG_PEGAWAI.NAMA,ANGGARAN.SIMPEG_PEGAWAI.NIP,...
  • ORACLE别名不能进行运算

    千次阅读 2017-06-28 13:06:51
    我有语句如下:  Select a,b,(a+b)/3 c,c/a from tab1;  系统提示有错误: 写成下面的就可以了, Select a,b,(a+b)/3 c,(a+b)/3/a from tab1;...注意:同级中,除排序,不能直接引用别名
  • SELECT TMP_PAGE.*, ROWNUM ROW_IDFROM ( SELECT a.userid AS "userid",a.companyid AS "companyid",a.loginname AS "loginname",a.password AS "password",a.truename AS "truename",a.gender AS "gender",a.brith....
  • Oracle使用别名进行WHERE条件判断

    千次阅读 2018-08-01 20:09:02
    举例:查询公司所有部门的工资排名第二人的信息 SELECT ENAME,DEPTNO,SAL, RANK() OVER(PARTITION BY DEPTNO ORDER BY SAL DESC) "RANK" FROM EMPLOYEE WHERE "RANK"... ...
  • 在设计场景时,添加了type_salary逻辑字段(员工工资大于本部门平均工资时显示为A,否则显示为B)。SELECT avgs.department_id,avgs.avg_salFROM (SELECT emp3.department_id "department_id",AVG(emp3.salary) "avg_...
  • Oracle中select使用别名

    2016-05-19 10:14:00
    1 、将字段用as转换成别名。 2 、直接在字段的名字后面跟别名。 3 、在字段后面用双引号引起的别名。   我的朋友 大鬼不动 最近访客 fhwlj kochiyas 大極星 Alz__ ...
  • 首先因为Oracle数据库不区分大小写,...现在我们用as关键字取别名改变查询出的字段名 可以看到并不起作用。 我们可以用这种方式, 在取别名的时候加上双引号就可以了。 解决:在区别名的时候为别名加上双引号 ...
  • SQL按照如下顺序执行查询:FROM子句WHERE子句GROUP BY子句HAVING子句SELECT子句ORDER BY子句对于大多数关系数据库系统来说,这个顺序解释了哪些名称(列或别名)是有效的,因为它们必须在前面的步骤中引入。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,968
精华内容 17,987
关键字:

oracle字段别名