本文介紹了SQL Server:從結果集ID生成WHERE子句?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我有一個查詢,它會生成以下結果集:
ID (text) VAL
1 A
2 B
3 C
我要從結果集ID生成WHERE子句:
where id in ('1','2','3')
使用Oracle,我可以使用以下查詢來生成WHERE子句:
with a as (
<my_query>
)
select 'where id in ('
|| listagg(id, ',') within group(order by id)
|| ')' as where_clause
from a
有沒有辦法使用SQL Server做同樣的事情?
相關:Oracle: Generate WHERE clause from resultset ids?
推薦答案
試試這個。
with a as (
<my_query>
)
SELECT 'WHERE id IN (' +
STRING_AGG(id, ',') WITHIN GROUP(ORDER BY id)
+ ')' as where_clause
FROM a
然后您將得到WHERE id IN (1,2,3)
如果要獲取WHERE id IN ('1','2','3')
然后您可以像下面這樣更改
SELECT 'WHERE id IN (''' +
STRING_AGG(id, ''',''') WITHIN GROUP(ORDER BY id)
+ ''')' as where_clause
FROM a
這篇關于SQL Server:從結果集ID生成WHERE子句?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,