我正在嘗試執行select語句,並將返回的其他變量用作返回的另一個select語句。從搜索中返回變量以便在select語句中使用
基礎上,FIELD_ID查詢搜索= 413
我需要6返回,以便它可以在查詢中用來獲得具有ITEM_ID行的所有6個。
以下是我有:
DECLARE @Results TABLE(result sysname);
INSERT @Results(result);
DECLARE @SQL4 NVARCHAR(MAX) = 'Select DISTINCT ITEM_ID, ATRR_VAL from [dbo].[CONTRACT_ATTR] WHERE [ATTR_VAL] LIKE ''%@VALUE%'' AND FIELD_ID = 413 ORDER BY [ATTR_VAL]';
SET @SQL4 = replace(@SQL4, '@VALUE', '123456');
EXEC SP_executesql @SQL4;
SELECT * FR0M @Results
我越來越多錯誤,即使這種嘗試跟隨一個在線教程。我做錯了什麼,如何解決?
編輯:我越來越近:
declare @myTable table
(
ITEM_ID nvarchar(256),
ATTR_VAL nvarchar(256)
)
insert into @myTable
exec (N'Select ITEM_ID, ATTR_VAL from [dbo].[CONTRACT_ATTR] WHERE [ATTR_VAL] LIKE ''%123%'' AND FIELD_ID = 413 ORDER BY [ATTR_VAL]') --dynamic query
select * from @myTable
的'INSERT'說法是不完整的。你試圖插入表變量的數據是什麼? –
@GiorgosBetsos我試圖插入(ITEM_ID,ATRR_VAL)。 –
你不能那樣做。 '@ Results'表只有一列。順便說一句,爲什麼使用'sysname'而不是'nvarchar'? –