Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chọn tất cả các cột lớn hơn một số giá trị

Cấu trúc dữ liệu của bạn không được chuẩn hóa. Nhưng nếu bạn muốn đi theo con đường này, hãy sử dụng:

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

Đầu ra:

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

Nếu bạn muốn sử dụng kết quả được phân tách bằng dấu phẩy:

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

SqlFiddleDemo2

Đầu ra:

kết quả
╔═══════════════════╗
║       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. Loại lập chỉ mục tốt nhất khi có mệnh đề LIKE

  2. Thiết kế cơ sở dữ liệu chuẩn hóa để có được 5 người hàng xóm gần nhất bằng cách sử dụng chỉ mục không gian MySQL

  3. MySQL INSERT INTO trực tiếp với mệnh đề WHERE

  4. Thay thế cho FIND_IN_SET trong SQLite?

  5. MySQL LEFT JOIN Truy vấn với mệnh đề WHERE