2015-07-02 39 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. */ 
相關問題