本文介紹了SQL Server:從結(jié)果集ID生成WHERE子句?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我有一個(gè)查詢,它會(huì)生成以下結(jié)果集:
ID (text) VAL
1 A
2 B
3 C
我要從結(jié)果集ID生成WHERE子句:
where id in ('1','2','3')
使用Oracle,我可以使用以下查詢來(lái)生成WHERE子句:
with a as (
<my_query>
)
select 'where id in ('
|| listagg(id, ',') within group(order by id)
|| ')' as where_clause
from a
有沒(méi)有辦法使用SQL Server做同樣的事情?
相關(guān):Oracle: Generate WHERE clause from resultset ids?
推薦答案
試試這個(gè)。
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
這篇關(guān)于SQL Server:從結(jié)果集ID生成WHERE子句?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,