Sql:使用特殊字符作为表列的别名?

时间:2015-07-22 09:19:51

标签: sql oracle11g

我可以使用任何特殊字符作为表格列的别名。

例如:select id as #,first_name,last_name from student;

4 个答案:

答案 0 :(得分:3)

您必须使用a quoted identifier

select id as "#",first_name,last_name from student

在对象命名规则7中,您可以在不带引号的对象名称(包括别名)中使用#:

  

不带引号的标识符只能包含数据库字符集和下划线(_),美元符号($)和井号(#)中的字母数字字符。数据库链接还可以包含句点(。)和" at"标志(@)。 Oracle强烈建议您不要在非引用标识符中使用$和#。

     

带引号的标识符可以包含任何字符和标点符号以及空格。但是,引号和非引号标识符都不能包含双引号或空字符(\ 0)。

但不是单个字符名称,因为规则6:

  

不带引号的标识符必须以数据库字符集中的字母字符开头。带引号的标识符可以以任何字符开头。

答案 1 :(得分:3)

您可以在别名周围使用 quoted-idetifier ,即双引号

来自docs

  

数据库对象命名规则

     

每个数据库对象都有一个名称。在SQL语句中,您表示   带引号标识符或非引用标识符的对象的名称   标识符

     
      
  • 带引号的标识符以双引号(")开头和结尾。如果使用带引号的标识符命名模式对象,那么您   每次引用该对象时都必须使用双引号。

  •   
  • 未加引号的标识符不会被任何标点符号包围。

  •   

例如,

SQL> SELECT empno as "#" FROM emp WHERE ROWNUM <=5;

         #
----------
      7369
      7499
      7521
      7566
      7654

SQL>

或者,在 SQL * Plus 中,您可以使用 HEADING 命令。

例如,

SQL> column empno heading #
SQL> SELECT empno FROM emp WHERE ROWNUM <=5;

         #
----------
      7369
      7499
      7521
      7566
      7654

SQL>

答案 2 :(得分:0)

可以在别名名称字段中使用的特殊字符

Character
!
#
$
%
&
'
*
+
_
/
=
?
^
_
.
{
|
}
~

在oracele中,可以使用双引号。我在Toad努力工作。 在SQL中,标题关键字也可以在答案中被其他人提及。

答案 3 :(得分:0)

您可以使用双引号将特殊字符定义为别名。 尝试和测试:

SELECT CustomerName AS Customer, ContactName AS "*" FROM Customers;