![](/img/trans.png)
[英]In Postgres: What is the most concise way to use `IS DISTINCT FROM` on multiple values?
[英]Most concise way to insert a series of values for each row?
為表中的每一行 插入一系列值的最簡潔方法是什么? 是否可以不使用循環或游標來完成?
例如,假設貓,狗和松鼠都共享行為1、2和3:
表格1:
===================
Id | Name
===================
1 | Cat
-------------------
2 | Dog
-------------------
3 | Squirrel
表2:
=============================
AnimalId | BehaviorId
=============================
1 | 1
-----------------------------
1 | 2
-----------------------------
1 | 3
-----------------------------
2 | 1
-----------------------------
2 | 2
-----------------------------
2 | 3
-----------------------------
3 | 1
-----------------------------
3 | 2
-----------------------------
3 | 3
-----------------------------
可以使用一個簡單的插入語句來完成:
insert into table_2 (AnimalId,BehavoirId)
select t1.AnimalId , t3.BehavoirId from table_1 t1
cross join table_3 t3
假設行為在table_3中
declare @t table (Id int,Name varchar(10))
insert into @t(Id,Name)values (1,'cat'),(2,'dog'),(3,'Squirrel')
declare @tt table (AnimalId int,BehaviourId int)
INSERT INTO @tt(AnimalId,BehaviourId)
select tt.ID,t.ID from @t t
CROSS APPLY (SELECT ID from @t ) tt
Select * from @tt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.