我正在使用复杂的选择查询,我想选择具有某种特定格式的列名,但是oracle只给我一个大写字母。
select no_constat as noFolder from cef_constat;
oracle给了我:
**nofolder**
value
value
value
我希望列名称如此noFolder
我希望大写字母中的'F'
你知道如何实现这个目标吗?
答案 0 :(得分:5)
答案 1 :(得分:2)
默认情况下,Oracle数据库区分大小写;但是,默认情况下,它们还会将所有内容转换为大写字母,以便从用户那里抽象出区分大小写。
这很有用,你可以这样做:
SELECT no_constat FROM cef_constat;
SELECT NO_CONSTAT FROM CEF_CONSTAT;
SELECT No_Constat FROM Cef_Constat;
SELECT No_CoNsTaT FROM CeF_CoNsTaT;
并且它们都给出了相同的结果,但数据库将应用其默认行为并将标识符转换为大写。
但是,如果您使用双引号,那么oracle将尊重您对案例的使用。在您的示例中,您需要为列名称设置区分大小写的别名(并且列名和表名可以包含任何大小写):
SELECT no_constat as "noFolder" FROM cef_constat;
SELECT NO_CONSTAT as "noFolder" FROM CEF_CONSTAT;
SELECT No_Constat as "noFolder" FROM Cef_Constat;
SELECT No_CoNsTaT as "noFolder" FROM CeF_CoNsTaT;
或者您甚至可以对所有标识符强制区分大小写(通过双引号),在这种情况下,您需要使用存储在数据字典中的确切大小写,对于表名和列名,它是大写的:
SELECT "NO_CONSTAT" as "noFolder" FROM "CEF_CONSTAT";