Как заставить Eclipse правильно форматировать код JSP?

Я часто использую команду форматирования кода ( 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, но я ищу гипер-эффективность, поэтому мне не интересно, есть ли основанный на утверждениях непроцедурный способ получить такой эффект «разгруппировать по»?

Это похоже на разворот, но мой мозг не может добраться туда прямо сейчас.

7
задан OMG Ponies 12 August 2010 в 21:12
поделиться

3 ответа

Используя 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
6
ответ дан 6 December 2019 в 19:31
поделиться

Если у вас есть таблица чисел в базе данных, вы можете использовать ее для получения результатов. В моей базе данных есть таблица с именем 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
7
ответ дан 6 December 2019 в 19:31
поделиться

Этот ответ предназначен только для обратной связи с 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)
0
ответ дан 6 December 2019 в 19:31
поделиться