У меня есть запрос, как это:ORDER BY клаузулы не сортировать по псевдониму в SQL Server
DECLARE @Sortorder VARCHAR(5) = 'asc',
@ColumnNumber INT = 9
SELECT
SUBSTRING(csu.UserName, CHARINDEX(CHAR(92), csu.UserName) + 1, LEN(csu.UserName)) AS UserName, w.WorkItemId
FROM [tasks].[WorkItems] w
LEFT JOIN operations.CustomerServiceUser csu ON csu.UserId = w.AssignedToUserId
WHERE
w.[ShowInTaskList] = 1 AND UserName IS NOT NULL
ORDER BY
CASE WHEN @ColumnNumber = 9 AND @SortOrder = 'asc' THEN UserName END ASC,
CASE WHEN @ColumnNumber = 9 AND @SortOrder = 'desc' THEN UserName END DESC
Когда я делаю, что данные не отсортированы по нику в любом возрастанию порядке или по алфавиту, но когда я делаю это:
SELECT
SUBSTRING(csu.UserName, CHARINDEX(CHAR(92), csu.UserName) + 1, LEN(csu.UserName)) AS UserName, w.WorkItemId
FROM [tasks].[WorkItems] w
LEFT JOIN operations.CustomerServiceUser csu ON csu.UserId = w.AssignedToUserId
WHERE
w.[ShowInTaskList] = 1 AND UserName IS NOT NULL
ORDER BY
UserName
Что я делаю неправильно в динамическом порядке? Значения одинаковы в объявленных переменных и в случае. Чтобы быть откровенным, я не знаю, какие ключевые слова я должен передать google;) Большое спасибо за ответ.
Как вы можете заказывать по имени пользователя по алфавиту, так и по алфавиту, в то же время. Я что-то упускаю? оба утверждения вашего заказа будут истинными. –
wow не ожидал этого, спасибо !! пожалуйста, ответьте на мой вопрос, чтобы я мог дать большие пальцы;) –
Как вы думаете, оба заказа по заявлениям верны? Это зависит от того, что будет храниться в переменной '@ SortOrder' ... – veljasije