2017-03-19 153 views
0

我有一個表在SQL Server值函數,其返回多個行和單個列如以下移調單行多列分成多個列單式柱

1 
2 
3 

我使用語法select * from dbo.function使用返回的值通過這個函數的條款我的查詢。

現在,除了函數返回的值之外,我還想將某些硬編碼值放在的子句中。

例如:

Select * from dbo.table where ID in (Select * from dbo.function + **I want to add some more values here**) 

因此,如果函數返回

1 
2 
3 

我想補充可以說

4 
5 
在該列表中,使得最終的查詢變爲如下

select * from dbo.table where ID in (1,2,3,4,5) 

回答

2

使用or

Select * 
from dbo.table 
where ID in (Select * from dbo.function) or 
     ID in (4, 5) 

雖然你可以使用裂傷的union all子查詢,上述使得查詢更易於理解(在我看來)。另外,如果「函數」實際上是一個表格,那麼優化器將更容易識別適當的索引。