Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите с запросом  [new]
Element2
Member

Откуда: Украина
Сообщений: 22
Есть табличка вида

ПриборА 2
ПриборБ 4
ПриборВ 1

Надо получить:

ПриборА
ПриборА
ПриборБ
ПриборБ
ПриборБ
ПриборБ
ПриборВ

т.е. столько строк, сколько указано в количестве.
8 июл 15, 11:59    [17866871]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Element2
Member

Откуда: Украина
Сообщений: 22
Причём надо без рекурсии и без master.dbo.spt_values..
Наверное, не получится..
8 июл 15, 12:02    [17866890]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Добрый Э - Эх
Guest
Element2,
Какая свежая и неизбитая тема...

STFF: CTE и популярные задачи форума.
8 июл 15, 12:03    [17866893]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Добрый Э - Эх
Guest
Element2
Причём надо без рекурсии и без master.dbo.spt_values..
Наверное, не получится..
инлайн-вью с кучей юнионов+ кросс-кросс-джойн
8 июл 15, 12:05    [17866905]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
SELECT T.Field
FROM T
JOIN master.dbo.spt_values V ON V.type='P' AND T.Number>V.number;
8 июл 15, 12:05    [17866906]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Element2
без master.dbo.spt_values
Ну так сделайте свою собственную таблицу с числами, проиндексируйте её
8 июл 15, 12:05    [17866908]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
with
l0(n) as (select 1 union all select 1),
l1(n) as (select 1 from l0 t1, l0 t2),
l2(n) as (select 1 from l1 t1, l1 t2),
l3(n) as (select 1 from l2 t1, l2 t2),
r(n) as (select 1 from l3 t1, l3 t2),
data(txt, cnt) as
(
	select 'ПриборА', 2 union all
	select 'ПриборБ', 4 union all
	select 'ПриборВ', 1
)
select * 
from 
	data d
		cross apply
	(
		select top(d.cnt) 1 dummy from r
	) z;
8 июл 15, 12:06    [17866912]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Element2
Причём надо без рекурсии и без master.dbo.spt_values..
Наверное, не получится..

ето религиозное требование ?
8 июл 15, 12:07    [17866915]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Добрый Э - Эх
Guest
Добрый Э - Эх
Element2
Причём надо без рекурсии и без master.dbo.spt_values..
Наверное, не получится..
инлайн-вью с кучей юнионов+ кросс-кросс-джойн

Пример реализации 3366936
8 июл 15, 12:08    [17866920]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить