如何解决插入2在同一插入SQL中选择
我有问题,我想使用2 select插入新表,但我不知道是否有可能...
我的代码:
insert INTO attributs_libres_lignes VALUES ( SELECT LIGN_PKID,"INSERT HERE" from ATTRIBUTS_LIGNES a,"HERE THE NUMBER OF COLUMN OF PKID (1 to 4)","HERE A DATE");
select COLONNE01 from attributs_lignes
union all select COLONNE02 from attributs_lignes
union all select COLONNE03 from attributs_lignes
union all select COLONNE04 from attributs_lignes
我想将第二部分(选择COLONNE01 ....)插入第一部分,而不是“ INSERT HERE”
数据旧表:第1列(“ PKID1”,一个“,”两个”,“三个”) 第2栏(“ PKID2”,“一个”,“两个”,“三个”)
新表:
(PKID1,1,1) (PKID2,一,一) (PKID1、2、2) (PKID2,2,2) (PKID1、3、3) (PKID2、3、3)
-
解决方法
您可以按以下方式使用CROSS JOIN:
INSERT INTO ATTRIBUTS_LIBRES_LIGNES
SELECT A.LIGN_PKID,C.COL_ATTRIBUTES
FROM ATTRIBUTS_LIGNES A
CROSS JOIN (
SELECT COLONNE01 COL_ATTRIBUTES FROM ATTRIBUTS_LIGNES UNION ALL
SELECT COLONNE02 FROM ATTRIBUTS_LIGNES UNION ALL
SELECT COLONNE03 FROM ATTRIBUTS_LIGNES UNION ALL
SELECT COLONNE04 FROM ATTRIBUTS_LIGNES
) C
,
不是那么简单吗?
insert into attributs_libres_lignes
select lign_pkid,colonne01 from attributs_lignes union all
select lign_pkid,colonne02 from attributs_lignes union all
select lign_pkid,colonne03 from attributs_lignes union all
select lign_pkid,colonne04 from attributs_lignes;
,
我建议您取消{fees ? fees.map((fee: any,index: number) => (
<div className="ClientLoanDetails__card__content-inner" key={index}>
{contractTermFeesFields.map((item,indexInner) => (
<div className="ClientLoanDetails__card__content-item" key={indexInner}>
<div className="ClientLoanDetails__card__content-item__title">
{item.title}
</div>
<div className="ClientLoanDetails__card__content-item__value">
{fee[item.key]}
</div>
</div>
))}
</div>
)): null}
的数据透视。这比cross apply
更有效率,因为它只扫描表一次,而不是每个成员子查询一次。
所以:
union
请注意,最好枚举insert into attributs_libres_lignes (lign_pkid,colonne)
select a.lign_pkid,v.colonne
from attributs_lignes a
cross apply (
select a.colonne01 colonnefrom dual
union all select a.colonne02 from dual
union all select a.colonne03 from dual
union all select a.colonne04 from dual
) v
语句的目标列。我假设目标表的列是insert
和lign_pkid
,您可能需要检查一下。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。