选择具有修改后的值和通配符的Into语句

问题描述 投票:0回答:1

是否可以为具有修改后的值的同一个表创建INSERT SELECT语句,并为其余列创建通配符?

我成功获取了具有修改后的值的select插入语句。但不可以使用通配符。我想避免不得不为每一列命名。

V_是变量:)

我想要的方式。

INSERT INTO Table_1 (
        T1.ID,
        T1.NAME,
        T1.SITE,
        T1.*) 
SELECT          T1.V_DE_SITE,
        T1.V_NAME,
        T1.V_SITE,
        T1.*
FROM Table_1 AS T1 WHERE T1.ID = V_SO_SITE;

以下是我可能做的,但是没有通配符! :(该表还有更多列

INSERT INTO Table_1 (
        ID,
        NAME,
        SITE) 
SELECT          V_DE_SITE,
        V_NAME,
        V_SITE
FROM Table_1 WHERE ID = V_SO_SITE;
sql select db2
1个回答
0
投票

[如果省略目标表的列名规范,并确保select语句的列数与目标表中的列数相同,并且对应的列数据类型兼容,则是可能的。

CREATE TABLE TEST_COLUMNS AS (
SELECT CURRENT TIMESTAMP TS, C.* FROM SYSCAT.COLUMNS C
) DEFINITION ONLY IN USERSPACE1
;

INSERT INTO TEST_COLUMNS
SELECT CURRENT TIMESTAMP TS, C.* FROM SYSCAT.COLUMNS C
;

您可以使用以下方法检查表元数据:

SELECT COLNO, COLNAME, TYPENAME, LENGTH
FROM SYSCAT.COLUMNS
WHERE TABSCHEMA=CURRENT SCHEMA AND TABNAME='TEST_COLUMNS'
ORDER BY COLNO;
© www.soinside.com 2019 - 2024. All rights reserved.