[英]Transpose a single row multiple columns into multiple rows single colum
我在sql server中有一个表值函数,它返回多行和单列,如下所示
1
2
3
我使用语法select * from dbo.function
在查询的where子句中使用此函数返回的值。
现在,除了函数返回的值外,我想在where子句中放入某些硬编码值。
例如 :
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)
使用or
:
Select *
from dbo.table
where ID in (Select * from dbo.function) or
ID in (4, 5)
尽管您可以使用union all
子查询,但以上内容使查询更易于遵循(我认为)。 另外,如果“函数”实际上是一个表,则优化器更容易识别适当的索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.