繁体   English   中英

将单行多列转换为多行单列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM