Заказ по цене, с сортировкой по столбцу (не по строке) [дубликат]

Я только что столкнулся с той же проблемой. Итак, согласно документации конструктора, издевающегося над , вам нужно подготовить класс, который создаст класс зла (ы). В вашем случае злые классы BufferedInputStream и CBZip2InputStream, а их создатель - анонимный класс, который не может быть определен в аннотации PrepareForTest. Поэтому я должен был сделать то же самое, что и вы (хм, просто увидел ваш комментарий), я переместил анонимный класс в названный класс.

13
задан Taryn 4 March 2013 в 02:15
поделиться

2 ответа

Попробуйте использовать UNION ALL .

SELECT ID, a, 'a' 
FROM tbl
WHERE ID = 1
UNION
SELECT ID, b, 'b' 
FROM tbl
WHERE ID = 2
3
ответ дан Iswanto San 20 August 2018 в 12:01
поделиться

Вы пытаетесь выполнить univot данные. MySQL не имеет функции univot, поэтому вам нужно будет использовать запрос UNION ALL для преобразования столбцов в строки:

select id, 'a' col, a value
from yourtable
union all
select id, 'b' col, b value
from yourtable
union all
select id, 'c' col, c value
from yourtable

См. SQL Fiddle with Demo .

Это также можно сделать, используя CROSS JOIN:

select t.id,
  c.col,
  case c.col
    when 'a' then a
    when 'b' then b
    when 'c' then c
  end as data
from yourtable t
cross join
(
  select 'a' as col
  union all select 'b'
  union all select 'c'
) c

См. SQL Fiddle with Demo

18
ответ дан Taryn 20 August 2018 в 12:01
поделиться
  • 1
    Спасибо. Так что, похоже, в конце концов не было более короткого пути (это довольно много столбцов, я думал, что будет проще, чем «выбрать ... из ...» для каждого столбца. – user2128539 4 March 2013 в 16:21
  • 2
    @ user2128539 см. мое редактирование, я включил другой способ отключить данные. – Taryn♦ 4 March 2013 в 17:07
Другие вопросы по тегам:

Похожие вопросы: