我知道我可以“选择5作为foo”并得到结果集:
foo
5
(1行)
...is有任何方法“选择5,6,7作为foo”并获得结果集:
foo
5
6
7
(3行)
.我很清楚,这不是典型的DB用法,任何可以想象的用法都可能更好地使用w/一种更普通的技术。更多的是技术问题。
注意:我知道我需要一大串工会--我想找点别的东西。
发布于 2009-01-20 15:04:47
这对于数字表来说很简单,下面是一个示例
select number as foo
from master..spt_values
where type = 'p'
and number between 5 and 7
或者如果你想使用
select number as foo
from master..spt_values
where type = 'p'
and number in(5,6,7)
发布于 2009-01-20 15:13:06
select foo
from (select 1 as n1, 2 as n2, 3 as n3) bar
unpivot (foo for x in (n1, n2, n3)) baz;
发布于 2009-01-20 15:15:54
可以使用这些技术和其他技术(任何为数据库开发人员职位进行面试的人都会告诉您)。但是,通常在另一个抽象层(即DAL或DAL之外)更容易(而且工具更合适)这样做,在那里您将数据视为某种类型的列表。尽管rdbms产品提供了促进者,但这是对关系概念模型的扭曲。
https://stackoverflow.com/questions/461645
复制相似问题