sql >> Database >  >> RDS >> Sqlserver

Aangepaste SQL-bestelling door:

De foutmelding legt het probleem perfect uit.

In het eerste voorbeeld de ORDER BY item -- CASE WHEN ... END -- verschijnt niet in de SELECT lijst.

In het tweede voorbeeld de ORDER BY item -- a.QuestionID -- verschijnt wel in de SELECT lijst.

Om het eerste voorbeeld te repareren, moet je zoiets als dit doen:

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. Onjuiste tekenreekswaarde bij het invoegen van UTF-8 in MySQL via JDBC?

  2. Krijg meerdere waarden in de SQL Server-cursor

  3. ORA-01461:kan een LONG-waarde alleen binden voor invoegen in een LONG-kolom - Komt voor bij query's

  4. Meerdere PHP-scripts tegelijkertijd uitvoeren (probleem met databaselus)