2015-07-02 33 views
1

我的表格有几个有相似名称的列,比如year_1,year_2,year_3等等。有没有简单的方法可以列出所有这些列,而不用全部输入?我不能使用select *,因为我不想要其他列。谢谢。如何用select语句列出相似的列名称?

回答

0

您必须在存储过程中使用动态nzplsql。虽然存储过程不容易返回表,但是您可以通过游标轻松输出从_v_relation_column生成的select语句。在bash中捕获它并将其提供给nzsql以从表中进行选择。无论是或者你可以返回一个reftable。

/* Stored procedure header. */ 
declare sql varchar; 
declare col record; 
begin_proc 
    sql := 'select '; 
    for col in select * from _v_relation_column where name = 'TABLE_NAME' loop 
    if col.attname like 'year%' 
     sql := sql || attname || ','; 
    end if; 
    sql := substring(sql,1,length(sql)-1); --To strip the last comma. Could probably be more elegant. 
    sql := sql || ' from table_name;'; 
    raise notice '%',sql; 
end_proc; 
/* Stored procedure footer. */ 
相关问题