我只是想表A列複製並粘貼到表B.SQL複製粘貼到另一個表的列:「子查詢返回多個值。」
我檢查了兩個表具有相同的行數
ALTER TABLE [dbo].[cube]
ADD [peer_group] int
--check row count same
SELECT COUNT(*)
FROM [dbo].[cube]
--13103507
SELECT TOP 10
peer_group
FROM [dbo].[cube]
--NULL
--NULL
--NULL
--NULL
--NULL
--NULL
--NULL
--NULL
--NULL
--NULL
SELECT COUNT(group_5)
FROM [dbo].[v_group]
--13103507
SELECT TOP 10
group_5
FROM [dbo].[v_group]
--1
--1
--2
--2
--3
--3
--4
--4
--4
--4
,而且我用SET
:
UPDATE [dbo].[cube]
SET [peer_group] =
(SELECT [group_5]
FROM [dbo].[v_group]
)
但它拋出錯誤:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
任何一個知道如何請修復此問題?謝謝!
對不起,我可以方便地發佈我的數據在這裏。請讓我知道是否需要,我會模擬一些數據。
UPDATE: 基於答案/評論(謝謝!)我理解,因爲SQL以爲我想放在SELECT
子查詢中檢索到的許多值到新的空列[中的每一行發生錯誤peer_group。
看起來SET [column_1] = [column_2]
只有當兩列在同一個表或連接表中時才起作用(請參閱@Praveen的解決方案)。
考慮到我的具體情況,[dbo].[v_group]
是從[dbo].[cube]
生成的視圖。我只用
SELECT *
,_something_ AS [peer_group] --this is what I had in [dbo].[v_group]
INTO [dbo].[new]
FROM [dbo].[cube]
問題很明顯(你不明白哪部分錯誤信息?)。但是,你想要做的並不明顯。請解釋你正在努力完成的事情。 –
什麼是[v_group]和多維數據集表之間的關係在連接和更新中使用 –
謝謝@Gordon Linoff,我想讓table_A中的column_1與table_B中的column_2完全相同 –