Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL персонализирана поръчка по

Съобщението за грешка обяснява перфектно проблема.

В първия пример ORDER BY елемент -- CASE WHEN ... END -- не се появява в SELECT списък.

Във втория пример ORDER BY елемент -- a.QuestionID -- се появява в SELECT списък.

За да поправите първия пример, ще трябва да направите нещо подобно:

SELECT DISTINCT a.QuestionID, a.QuestionName, b.AnswerID, b.AnswerName,
                CASE WHEN a.QuestionName = 'A' THEN 0
                     WHEN a.QuestionName = 'B' THEN 1
                     ELSE a.QuestionID
                END
FROM @TempExportList AS a
    JOIN tblAnswers AS b
        ON a.QuestionID = b.QuestionID
WHERE a.PaperID = @PaperID
ORDER BY CASE WHEN a.QuestionName = 'A' THEN 0
              WHEN a.QuestionName = 'B' THEN 1
              ELSE a.QuestionID
         END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възстановяване на базата данни на SQL Server - неуспешно:38 (достигна края на файла.)

  2. Как да намерите най-лошо представящите се заявки в SQL Server 2008?

  3. Как да използвате aspnet_regsql.exe

  4. Как да създадете материализирани изгледи в SQL Server?

  5. Има ли значение редът на колоните в клауза WHERE?