【问题标题】:get multiple records from one record从一条记录中获取多条记录
【发布时间】:2011-04-28 01:31:53
【问题描述】:

我有一个包含 2 列的表,名称为字符串,数量为整数,我需要每条记录的数量 X 数量字段,例如

Name   | Qty
-----------
Dave   | 25
Nathan | 10
Chaim  | 8

我需要来自 Dave 的 25 条来自 nathan 10 和 chaim 8 的记录

【问题讨论】:

  • Dave 的表中有多行吗?你想总结各种数量?从你的问题很难看出。
  • @Steve "dave" 是 qty 列中的 1 条记录,值为 25

标签: sql-server


【解决方案1】:

不确定此要求的用例,但您可以借助数字表来做到这一点。我在下面使用master..spt_values 进行演示,但您应该使用one of the techniques in this answer 创建一个永久的。

;WITH T(Name,Qty) AS
(
SELECT 'Dave',25 union all
SELECT 'Nathan',10 union all
SELECT 'Chaim',8
), Numbers AS
(
SELECT number
FROM master..spt_values 
WHERE   type='P' AND number > 0
)
SELECT Name
FROM T 
JOIN Numbers ON  number  <= Qty

【讨论】:

  • 但我不知道数量字段中的值是什么
  • @Nathan - 你不需要知道。只要您确保 Numbers 表至少与它可能具有的任何可能的值一样大(并且您可以通过Qty 上的检查约束来强制执行此操作)。你只需加入number &lt;= Qty
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 2023-03-10
相关资源
最近更新 更多