不建表,获取select查询的字段
我这边有这样的一个需求,在不建立表的情况下,获取到select column中的column名称,如
select t.column1,t.column2,t.column3 from test
我要获取的是column1,column2,column3这几个字段的名称
请教各位数据库专家,谢谢哈
[解决办法]
不建表,你的test表从那儿来?
ORACLE数据字典那来你的表结构定义?
[解决办法]
SQL> desc emp;Name Type Nullable Default Comments -------- ------------ -------- ------- -------- EMPNO NUMBER(4) ENAME VARCHAR2(10) Y JOB VARCHAR2(9) Y MGR NUMBER(4) Y HIREDATE DATE Y SAL NUMBER(7,2) Y COMM NUMBER(7,2) Y DEPTNO NUMBER(2) Y --构造一个表,和emp表的部分字段相同,但是顺序不同SQL> create table t_emp as 2 select ename,empno,deptno,sal 3 from emp 4 where 1=0 5 / Table created --添加数据SQL> insert into t_emp(ename,empno,deptno,sal) 2 select ename,empno,deptno,sal 3 from emp 4 where sal >= 2500 5 / 5 rows inserted SQL> select * from t_emp; ENAME EMPNO DEPTNO SAL---------- ----- ------ ---------JONES 7566 20 2975.00BLAKE 7698 30 2850.00SCOTT 7788 20 3100.00KING 7839 10 5000.00FORD 7902 20 3000.00 SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO----- ---------- --------- ----- ----------- --------- --------- ------ 7369 SMITH CLERK 7902 1980-12-17 800.00 20 7499 ALLEN SALESMAN 7698 1981-02-20 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981-02-22 1250.00 500.00 30 7566 JONES MANAGER 7839 1981-04-02 2975.00 20 7654 MARTIN SALESMAN 7698 1981-09-28 1250.00 1400.00 30 7698 BLAKE MANAGER 7839 1981-05-01 2850.00 30 7782 CLARK MANAGER 7839 1981-06-09 2450.00 10 7788 SCOTT ANALYST 7566 1987-04-19 3100.00 20 7839 KING PRESIDENT 1981-11-17 5000.00 10 7844 TURNER SALESMAN 7698 1981-09-08 1500.00 0.00 30 7876 ADAMS CLERK 7788 1987-05-23 1100.00 20 7900 JAMES CLERK 7698 1981-12-03 950.00 30 7902 FORD ANALYST 7566 1981-12-03 3000.00 20 7934 MILLER CLERK 7782 1982-01-23 1300.00 10 14 rows selected
[解决办法]
你的tablexxx 与test表字段名称一致?
[解决办法]
不建表怎么有test。
[解决办法]
可是select过来的字段可能是这样子
select t.column2,t.column1,t.column3 from test
如果能确定这个sql的格式没有大的变化 你可以截取啊 把select和from中间的部分取出来 再把表名.列名中.前边的去掉 列名就出来了
[解决办法]
说了半天你是想说,要查询中获取字段的名字。
[解决办法]
select '' column1, '' column2, '' column3 from dual
[解决办法]
desc cat;
/*或者:*/
desc tab;
TNAME是表名。