可以在SQL中选择多个常量到多个resultset行中吗?
我知道我可以“选择5作为foo”并获得结果集: foo 五, (1排) …有没有办法“选择5,6,7作为foo”并获得结果集: foo 五, 六, 七, (3排) …我很清楚,这不是典型的DB用法,任何可以想象的用法都最好使用更普通的技术。更多的是一个技术问题可以在SQL中选择多个常量到多个resultset行中吗?,sql,sql-server,Sql,Sql Server,我知道我可以“选择5作为foo”并获得结果集: foo 五, (1排) …有没有办法“选择5,6,7作为foo”并获得结果集: foo 五, 六, 七, (3排) …我很清楚,这不是典型的DB用法,任何可以想象的用法都最好使用更普通的技术。更多的是一个技术问题 注意:我知道我可以使用一个大的工会总列表——我正在尝试寻找其他的东西。使用数字表很容易,下面是一个示例 select number as foo from master..spt_values where type = 'p' and
注意:我知道我可以使用一个大的工会总列表——我正在尝试寻找其他的东西。使用数字表很容易,下面是一个示例
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)
使用这些和其他技术是可能的(任何一个为数据库开发人员的职位面试过的人都会告诉你)。但通常在另一个抽象层中更容易做到这一点(而且工具更合适);i、 e.您的DAL或更高版本,将数据视为某种类型的列表。尽管rdbms产品提供了促进者,但这是对关系概念模型的扭曲。只是为了好玩,不会梦想将其用于实际:
WITH numbers AS
(
SELECT ROW_NUMBER() OVER (ORDER BY name) AS 'RowNumber'
FROM sys.all_objects
)
SELECT RowNumber
FROM numbers
WHERE RowNumber BETWEEN 5 AND 7;
WITH numbers AS
(
SELECT ROW_NUMBER() OVER (ORDER BY name) AS 'RowNumber'
FROM sys.all_objects
)
SELECT RowNumber
FROM numbers
WHERE RowNumber BETWEEN 5 AND 7;