我使用的是SQL Server 2008的SQL服務器:整理多列不正確的語法
SELECT resultTable.OrderNumber,
resultTable.ProjectId,
resultTable.BatchId,
resultTable.CustomerId,
resultTable.City,
resultTable.Street,
resultTable.PostalCode,
resultTable.Country,
resultTable.CreatedDate,
resultTable.Name,
COUNT(*) OVER() as OrdersCount,
Row_Number() OVER
(ORDER BY
CASE WHEN @sortBy = 'OrderNumber'
THEN resultTable.OrderNumber END,
CASE WHEN @sortBy = 'ProjectId'
THEN resultTable.ProjectId END,
CASE WHEN @sortBy = 'Address'
THEN resultTable.Country, resultTable.City, resultTable.Street, resultTable.PostalCode END,
CASE WHEN @sortBy = 'CreatedDate'
THEN resultTable.CreatedDate END) as RowIndex
FROM resultTable
該查詢火災近語法錯誤「」
THEN resultTable.Country, resultTable.City, resultTable.Street, resultTable.PostalCode END,
如果我以後刪除列第一個「,」一切都好,但我想按地址排序,它由4列組成。大概我在這裏看不到什麼簡單的東西。
PS:@sortBy
只是一個字符串參數。
案例返回表達式。你不能有'resultTable.Country,resultTable.City,resultTable.Street,resultTable.PostalCode'作爲結果。當@sortBy =「訂單號碼」,然後ROW_NUMBER()OVER(由resultTable.OrderNumber順序)當...' –
你可能想扭轉局面在案件排序時的一些參數爲空,長/短,一般在不可預知的順序(但很少) –