運行我查詢後存儲SQL查詢結果(1根)我收到1個結果爲作爲陣列
5
6
98
101
是否有這樣的結果存儲爲陣列,這樣我可以在查詢後使用它 方式像
WHERE NOT IN ('5','6','98','101')
我知道存儲單個變量的結果,但這可能嗎?
我不能使用@Table變量,我會在以後再次重新運行查詢,並將其超出範圍
運行我查詢後存儲SQL查詢結果(1根)我收到1個結果爲作爲陣列
5
6
98
101
是否有這樣的結果存儲爲陣列,這樣我可以在查詢後使用它 方式像
WHERE NOT IN ('5','6','98','101')
我知道存儲單個變量的結果,但這可能嗎?
我不能使用@Table變量,我會在以後再次重新運行查詢,並將其超出範圍
有存儲喜歡用Temporary Tables
或View
或Table valued function
但IMO那些列數據的多路不需要將該列數據存儲在任何地方。可以直接使用該列中的任何查詢以下稱(或)執行JOIN
這將是更好的選擇比NOT IN
select * from
table2
where some_column not in (select column1 from this_table);
不會真的爲他想要做的工作http://stackoverflow.com/questions/32570162/can-table-variables-stored在過去的SQL服務器 –
正如我實際上計劃存儲我的數組供以後使用一段時間後。在你的代碼中,table2只是this_table的更新版本。因此它不會工作 – user2961712
雖然這種方法是不推薦的,存儲在單個列中的陣列可以是使用CSV
(逗號分隔值)完成。只需創建一個VARCHAR
數組並通過以特定順序存儲包含這些值的字符串來存儲它。基本上將所有值存儲到一個字符串中,每個值在該字符串中以comma
分隔。將其存儲到您選擇的列中。您可以稍後獲取字符串並使用字符串解析器解析它,即使用python中的.split()
函數。 AGAIN我不建議這樣做,我會改爲使用多個列,一個引用每個值並以這種方式訪問它們 使用單獨的列將使其易於在Stored Procedure
中使用。
謝謝,但你有我可以參考的例子嗎?這有點複雜,我無法在網上找到信息 – user2961712
一個快速的解決方法將XML存儲在某處,然後WHERE NOT IN(SELECT tcvalue('...','type')as name FROM somewhere.column.nodes(tc)'解析它 – lad2025
是嗎?有多行值的單個字段?或者查詢是否返回多行? – fthiella
同意使用XML。無論採用哪種方式,您都要執行拆分字符串和Stuff,它依賴於XML。只需使用原始的XML –