Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zamówienie niestandardowe SQL według

Komunikat o błędzie doskonale wyjaśnia problem.

W pierwszym przykładzie ORDER BY item -- CASE WHEN ... END -- nie pojawia się w SELECT lista.

W drugim przykładzie ORDER BY element -- a.QuestionID -- pojawia się w SELECT lista.

Aby naprawić pierwszy przykład, musisz zrobić coś takiego:

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. Jaki natywny typ danych dotNet jest najbardziej odpowiedni do przekazywania wartości hierarchyId programu SQL Server?

  2. Chcę użyć instrukcji CASE do aktualizacji niektórych rekordów w serwerze sql 2005

  3. Procedura składowana EXEC vs różnica sp_executesql?

  4. Używając z vs deklaruj tabelę tymczasową:wydajność / różnica?

  5. Jak usunąć zduplikowane dane z tabeli SQL?