SQL - 限制另一个表中Insert的值

时间:2017-03-14 17:38:04

标签: sql sql-pl

我试图插入以下内容:

insert into TABLEA select b.ID,..... from TABLEB b where code = 'NL'

问题是从TABLEB中选择*,其中code =' NL&#39 ;;返回超过1的值。

无论如何要将其限制为只有1个值?

我试过select min(b.id),但它没有用

2 个答案:

答案 0 :(得分:1)

从我可以收集的内容中,您只需要插入一个代码= NL的实例,即使有多个记录符合此要求。

如果这是您想要的,请将“select *”更改为“select top 1 *”,它只会从您的子查询中提取一条记录。

答案 1 :(得分:0)

使用rownum = 1

的地方
insert into TABLEA select b.ID,..... from TABLEB b where code = 'NL' and rownum = 1

但你确定要这么做吗?如果它实际上是你想要的第二行怎么办?您可能想弄清楚为什么您的查询返回多个。