当我尝试运行具有多个SELECT语句插入语句,我得到错误子查询,而与多个SELECT语句
插入语句消息512,级别16,状态1,第3行返回多个值子查询返回的值超过1 。当子查询遵循=,!=,<,< =,>,> =或当子查询用作表达式时,这是不允许的。该语句已终止。
我查询
insert into zzz_fkp_tbl2 (fname,lname) values
(
(select top 20 percent [FNAME] from ZZZ_FKP_NEW_PATIENT order by newid())
,(select top 20 percent lname from ZZZ_FKP_NEW_PATIENT order by newid())
);
但是,当我运行单个语句插入语句,这个查询成功运行过程中出现,如:同时使用多个
insert into zzz_fkp_tbl2 (lname)
select top 20 percent lname from ZZZ_FKP_NEW_PATIENT order by newid();
为什么我收到错误Subquery returned more than 1 value
选择语句。但是insert语句对单个select语句正常工作。在这种情况下如何使用多个select语句? 我的要求是为fname和lname选择单独的随机行,但不是在一起,即应该随机选择fname,并应随机选择lname。
目标表
create table zzz_fkp_tbl2
(
zzz_fkp_tbl2_id int identity(1,1) not null
,name varchar(200)
,fname varchar(200)
,lname varchar(200)
,gender int
,address int
,age varchar(10)
);
问题是每一个你的子查询将获取所有的时间前20行数值t o插入第一行的一列,这是错误的方法 – Sagar
你想保持fname/lname对吗? – jarlh
第一个是你刚发明的语法。在TSQL中,这个(第一个)代码表示:具有两个标量值的元组,每个标量值都由子查询选择。 –