2015-07-03 5 views
-4

Мне нужна помощь в решении этого запроса ...комплекс MSSQL Query

Написать запрос, который будет отображать идентификатор студента и стандарт в формате указанной ниже.

Если стандарт представляет собой «V» дисплей «ПЯТЫЙ СТАНДАРТ», если «Стандарт» является «IV» дисплеем «ЧЕТВЕРТЫЙ СТАНДАРТ», если «Стандарт» - это «III» дисплей «ТРЕТИЙ СТАНДАРТ», если стандартным является «II» дисплей «ВТОРОЙ СТАНДАРТ» ', Если «Стандарт» «I» отображает «ПЕРВЫЙ СТАНДАРТ» под названием столбца «STDINWORDS» и сортируется по убыванию в соответствии со стандартами.

Подсказка: В запросе должна отображаться точная строка, указанная в запросе, например «ПЯТЫЙ СТАНДАРТ» и т. Д., И использовать ее, как указано в инструкции проблемы. Пример: С-125 ПЕРВЫЙ СТАНДАРТ

Подсказка: 'S-125' представляет собой значение StudentID столбца.

+0

Почему это помечено как MySQL? – winmutt

+0

@winmutt, потому что мой экзаменатор использует mysql для выполнения, и я подумал, что для решения этого вопроса может быть встроенная функция mysql. –

ответ

1

Вам нужно будет смотреть в CASE заявление для этого. Поскольку вы не предоставили каких-либо образцов данных, здесь одно решение, основанное на моем понимании:

create table student (student_id varchar(255), standard varchar(255)); 

insert into student values 
('S-125','I'), 
('S-126','II'), 
('S-127','III'), 
('S-128','IV'), 
('S-129','V'); 

SELECT student_id 
    ,standard 
    ,CASE standard 
     WHEN 'I' 
      THEN 'FIRST STANDARD' 
     WHEN 'II' 
      THEN 'SECOND STANDARD' 
     WHEN 'III' 
      THEN 'THIRD STANDARD' 
     WHEN 'IV' 
      THEN 'FOURTH STANDARD' 
     WHEN 'V' 
      THEN 'FIFTH STANDARD' 
     END AS StdInWords 
    ,CASE standard 
     WHEN 'I' 
      THEN 1 
     WHEN 'II' 
      THEN 2 
     WHEN 'III' 
      THEN 3 
     WHEN 'IV' 
      THEN 4 
     WHEN 'V' 
      THEN 5 
     END AS SortBy_Field 
FROM student 
ORDER BY SortBy_Field DESC; 

SQL Fiddle Demo

+0

Ответ должен быть таким: S-125 ПЕРВЫЙ СТАНДАРТ –

+0

Спасибо в любом случае .. я нашел правильный запрос, используя свой метод .. ВЫБРАТЬ CONCAT (student_id \t,» ' \t, СЛУЧАЙ стандартный \t \t КОГДА„Я“ \t \t \t Then 'Первый стандарт' \t \t, когда 'II' \t \t \t Then 'Второй стандарт' \t \t пРИ 'III' \t \t \t ТОГДА 'ТРЕТИЙ СТАНДАРТ' \t \t когда 'IV' \t \t \t ТОГДА 'ЧЕТВЕРТЫЙ СТАНДАРТ' \t \t ПРИ 'V' \t \t \t ТОГДА 'Пятый стандарт' \t \t КОНЕЦ) КАК StdInWords от студента ORDER BY standard DESC; –

+0

Прохладный! Теперь, если вы могли бы оказать мне услугу и отметить ее как принятый ответ, так как это решение помогло вам решить вашу проблему, это было бы здорово! – FutbolFan

Смежные вопросы