Я часто использую команду форматирования кода ( Ctrl + Shift + F ) в Eclipse IDE. Хотя это хорошо работает для исходных кодов Java / CSS, форматирование JSP просто отстой .
Существует ли какой-либо подключаемый модуль для улучшения форматирования JSP в Eclipse IDE? Под форматированием я имею в виду правильное отступление тегов JSP / HTML. x.id | x.allocated | x.unallocated ---------------------------------- фу | 2 | 0 бар | 1 | 2 -----...
У меня есть динамический набор данных X в форме:
----------------------------------
x.id | x.allocated | x.unallocated
----------------------------------
foo | 2 | 0
bar | 1 | 2
----------------------------------
И мне нужно получить результат Y (порядок неважно):
----------------------------------
y.id | y.state
----------------------------------
foo | allocated
foo | allocated
bar | allocated
bar | unallocated
bar | unallocated
----------------------------------
У меня есть решение на основе UTF, но я ищу гипер-эффективность, поэтому мне не интересно, есть ли основанный на утверждениях непроцедурный способ получить такой эффект «разгруппировать по»?
Это похоже на разворот, но мой мозг не может добраться туда прямо сейчас.
Используя Sql Server 2005, UNPIVOT и CTE, вы можете попробовать что-то вроде
DECLARE @Table TABLE(
id VARCHAR(20),
allocated INT,
unallocated INT
)
INSERT INTO @Table SELECT 'foo', 2, 0
INSERT INTO @Table SELECT 'bar', 1, 2
;WITH vals AS (
SELECT *
FROM
(
SELECT id,
allocated,
unallocated
FROM @Table
) p
UNPIVOT (Cnt FOR Action IN (allocated, unallocated)) unpvt
WHERE Cnt > 0
)
, Recurs AS (
SELECT id,
Action,
Cnt - 1 Cnt
FROM vals
UNION ALL
SELECT id,
Action,
Cnt - 1 Cnt
FROM Recurs
WHERE Cnt > 0
)
SELECT id,
Action
FROM Recurs
ORDER BY id, action
Если у вас есть таблица чисел в базе данных, вы можете использовать ее для получения результатов. В моей базе данных есть таблица с именем Numbers со столбцом Num.
Declare @Temp Table(id VarChar(10), Allocated Int, UnAllocated Int)
Insert Into @Temp Values('foo', 2, 0)
Insert Into @Temp Values('bar',1, 2)
Select T.id,'Allocated'
From @Temp T
Inner Join Numbers
On T.Allocated >= Numbers.Num
Union All
Select T.id,'Unallocated'
From @Temp T
Inner Join Numbers
On T.unAllocated >= Numbers.Num
Этот ответ предназначен только для обратной связи с G Mastros и не требует голосов. Я думал, что он оценит повышение производительности своего и без того превосходного запроса.
SELECT
T.id,
CASE X.Which WHEN 1 THEN 'Allocated' ELSE 'Unallocated' END
FROM
@Temp T
INNER JOIN Numbers N
On N.Num <= CASE X.Which WHEN 1 THEN T.Allocated ELSE T.Unallocated END
CROSS JOIN (SELECT 1 UNION ALL SELECT 2) X (Which)