sql >> Databasteknik >  >> RDS >> Sqlserver

SQL anpassad ordning efter

Felmeddelandet förklarar problemet perfekt.

I det första exemplet visas ORDER BY objekt -- CASE WHEN ... END -- visas inte i SELECT lista.

I det andra exemplet visas ORDER BY objekt -- a.QuestionID -- visas i SELECT lista.

För att fixa det första exemplet måste du göra något så här:

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. Hur man migrerar WHMCS-databas till MariaDB Galera Cluster

  2. Jämförelse av MySQL datum/författare

  3. SQL flera kolumner i IN-sats

  4. Vad är SQLite