SQL - 从Select +用户定义的列和值创建表

tom*_*ato 1 sql oracle create-table

目前我有以下SELECT语句:

CREATE TABLE  TEST AS
SELECT ROW_ID,
            PROM_INTEG_ID,
            INTEGRATION_ID,
            BILL_ACCNT_ID,
            SERV_ACCT_ID,
            CFG_STATE_CD   
FROM PRODUCTS
WHERE PROD_ID = 'TestProduct'
AND STATUS_CD = 'Active';
Run Code Online (Sandbox Code Playgroud)

但是,我必须添加一些在PRODUCTS表中不存在的其他列,并使用我自己的名称定义它们.eg HIERARCHY

我尝试在我的SQL查询中使用WITH操作数但由于语法错误而一直失败.

    CREATE TABLE  TEST AS
SELECT ROW_ID,
            PROM_INTEG_ID,
            INTEGRATION_ID,
            BILL_ACCNT_ID,
            SERV_ACCT_ID,
            CFG_STATE_CD   
            WITH
                  PRODUCT_HEIRARCHY varchar2(30)  'Test123Value'
FROM PRODUCT
WHERE PROD_ID = 'TestProduct'
AND STATUS_CD = 'Active';
Run Code Online (Sandbox Code Playgroud)

总而言之,我想从现有表中提取列以及定义自己的列.

任何帮助赞赏

Gor*_*off 6

只需将列添加到选择:

CREATE TABLE TEST AS 
    SELECT ROW_ID, PROM_INTEG_ID, INTEGRATION_ID, BILL_ACCNT_ID, SERV_ACCT_ID, CFG_STATE_CD,
           CAST('Test123Value' AS VARCHAR2(30)) as PRODUCT_HIERARCHY
    FROM PRODUCTS
    WHERE PROD_ID = 'TestProduct' AND STATUS_CD = 'Active';
Run Code Online (Sandbox Code Playgroud)

请注意,这cast()不是必需的.但是如果您希望列具有特定类型,那么这是一个好主意.