#sql-server-2005
#sql-server-2005
Вопрос:
Я использую следующий запрос для отображения записей с SQL SERVER
select * from orders
В настоящее время этот запрос показывает все 100 записей в базе данных, мне нужно, чтобы вместо 100 он показывал 200 записей (так что альтернативные пустые записи в порядке) Возможно ли это сделать?
Комментарии:
1. Это лучше всего делать на уровне представления.
2. Из интереса, почему вы хотите это сделать? Возможно, это требование к способу представления данных? Логика представления действительно должна храниться отдельно от операций CRUD (создание, извлечение, обновление, удаление) над данными..
Ответ №1:
-- sample table
declare @Order table
(
orderid int,
qty int
)
-- add some data
insert into @Order
select 1, 10 union all
select 2, 20 union all
select 3, 30
-- cross join the query against two rows
select case D.N when 1 then O.orderid end as orderid,
case D.N when 1 then O.qty end as qty
from @Order as O
cross join (select 1 union all select 2) as D(N)
order by O.orderid, D.N
Результат:
orderid qty
----------- -----------
1 10
NULL NULL
2 20
NULL NULL
3 30
NULL NULL