目前我有以下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';
但是我必须添加一些在PRODUCTS表中不存在的其他列,并使用我自己的名称定义它们.e.g 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';
总而言之,我想从现有表中提取列并定义我自己的列。
任何帮助表示赞赏
答案 0 :(得分: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';
请注意,cast()
不是必需的。但如果您希望列具有特定类型,那么这是一个好主意。
答案 1 :(得分:1)
同样使用CTE
,即WITH clause
通常知道,您可以create table
。
CREATE TABLE t
AS
WITH data AS (
SELECT...
)
SELECT *
FROM data