Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wybierz wszystkie kolumny większe niż pewna wartość

Twoja struktura danych nie jest znormalizowana. Ale jeśli chcesz iść tą ścieżką, użyj:

select sub.student
FROM (
  select t.timestamp,
    t.Name,
    t.Total,
    c.col AS student,
    case c.col
      when 'Student1' then Student1
      when 'Student2' then Student2
      when 'Student3' then Student3
      -- ...
    end as d
  from mytable t
  cross join
  (
    select 'Student1' as col
    union all select 'Student2'
    union all select 'Student3'
    -- ...
  ) c
) AS sub
WHERE sub.timestamp = '20150911'
  AND sub.d > 0;
  -- sub.d = 'NA'
  -- sub.d = 0

SqlFiddleDemo

Wyjście:

╔══════════╗
║ student  ║
╠══════════╣
║ Student1 ║
║ Student2 ║
╚══════════╝

Jeśli chcesz użyć wyników oddzielonych przecinkami:

select GROUP_CONCAT(sub.student ORDER BY sub.student) AS result

SqlFiddleDemo2

Wyjście:

╔═══════════════════╗
║       result      ║
╠═══════════════════╣
║ Student1,Student2 ║
╚═══════════════════╝



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Problem z instalacją Ruby on Rails - Jak korzystać z instalacji WAMP MySQL?

  2. Mysql datetime staje się 0000-00-00 00:00:00 w wersji mysql 5.6

  3. echo czegoś z bazy danych MySQL

  4. Jak skonfigurować Spring boot do pracy z dwoma bazami danych?

  5. Grupuj kodiniter i twórz tablice wielowymiarowe