我有一個查詢,將使用 UNION 在表中插入資料。
DECLARE @testTable TABLE
(
ID smallint,
ACode varchar(64)
)
INSERT INTO @testTable
SELECT 1, 'A1,B2'
UNION ALL
SELECT 2, 'C1,D2'
SELECT [value] As ACode
FROM STRING_SPLIT
(
(
SELECT t.ACode
FROM @testTable t
),
','
)
當我只需要回傳一行時,我不會遇到問題。我期待當有兩個或更多 UNION 時,它只會在最后追加,但它給了我一個錯誤。“子查詢回傳的值超過 1。當子查詢跟隨 =、!=、<、<=、>、>= 或當子查詢用作運算式時,這是不允許的。”
誰能幫我解決我的查詢?
我期待這樣的事情:

演示 SQL
uj5u.com熱心網友回復:
使用CROSS APPLY替代
例子
Select ACode=B.value
From @testTable A
Cross Apply string_split(ACode,',') B
結果
ACode
A1
B2
C1
D2
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/351621.html
標籤:sql sql-server 查询语句
