netezza中的表名别名

时间:2014-06-02 15:17:01

标签: sql netezza

我在netezza SQL中使用以下命令在通过命令行NZSQL运行查询时定义表名别名

\set catgtable 'table_a'
\echo table name is :catgtable

我在所需的地方使用表名alias catgtable,如下所示:

select *
from :catgtable where col1 is not NULL

我的问题是如何在这两种情况下使用别名:

  1. select ':catgtable' as table_name, col1,col2
    from table_x
    

    这给了我一个错误,因为它需要实际的表名。

  2. select table_name, column_name
    from _v_sys_columns
    where table_name = ':catgtable' and column_name like '%merch_cat_%'
    

    此处别名:catgtable不起作用,它需要实际的表名。

  3. 如果有解决方法,请告诉我。

1 个答案:

答案 0 :(得分:0)

如果要在nzsql中将变量的内容用作文字,则需要在设置变量时在文字文本周围添加一组带有反斜杠的单引号。

TESTDB.ADMIN(ADMIN)=> \set tvar '\'BLAH\''
TESTDB.ADMIN(ADMIN)=> select :tvar col_alias;
 COL_ALIAS
-----------
 BLAH
(1 row)