SELECT sid, 'Math' as subject, math as mark
FROM your_table
UNION ALL
SELECT sid, 'English' as subject, english as mark
FROM your_table
UNION ALL
SELECT sid, 'French' as subject, french as mark
FROM your_table
Но основната причина за вашия проблем е грешен дизайн на база данни. Тези теми не трябва да бъдат колони на първо място и трябва да се съхраняват в таблица, много подобна на желания от вас резултат.
Редактиране
И така, какво прави?
SELECT sid, 'Math' as subject, math as mark
FROM your_table
Връща sid колона, "виртуална" колона с твърдо кодирана стойност 'Math' който получава името subject . Тъй като не сте съхранили стойността 'Math' някъде това трябваше да бъде твърдо кодирано. След това най-накрая избира и колоната math използвайки името mark вместо. Обърнете внимание на разликата между math и 'Math' - единият е колона, а другият низов литерал поради единичните кавички.
Това се прави и за трите предмета (ако имахте четири предмета, ще ви трябват четири части в UNION)
UNION ALL комбинира всичките три SELECT в една единствена заявка. andr решение (което беше гласувано против от някой, който не го е разбрал) прави това още по-ясно, като изрично го поставя в извлечена таблица (или вграден изглед).
Стартирайте всеки SELECT самостоятелно, за да видите какво правят отделните части.
Частта as mark се нарича "псевдоним на колона" и може също да се използва за извличане на колони с едно и също име от различни таблици в съединение и все още да имат уникални имена в резултатния набор.