Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कुछ मान से बड़े सभी कॉलम चुनें

आपकी डेटा संरचना सामान्यीकृत नहीं है। लेकिन अगर आप इस रास्ते का उपयोग करना चाहते हैं:

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

आउटपुट:

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

यदि आप अल्पविराम से अलग किए गए परिणाम का उपयोग करना चाहते हैं:

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

SqlFiddleDemo2

आउटपुट:

╔═══════════════════╗
║       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. MySQL वर्कबेंच द्वारा निर्यात की गई CREATE स्क्रिप्ट में दूसरे कंप्यूटर पर सिंटैक्स त्रुटि है

  2. रूबी ऑन रेल्स के साथ MySQL सर्वर चला गया है

  3. SQL का उपयोग करके अनुपलब्ध डेटा पंक्तियों को कैसे खोजें?

  4. MySQL में अग्रणी / अनुगामी वर्णों के साथ एक स्ट्रिंग को कैसे पैड करें - LPAD (), RPAD ()

  5. mysql समूह के साथ वापसी गिनती 0