72 похожих чатов

Доброго дня, в mysql есть фича с помощью которой можно

задавать порядок таблицы в зависимости от того как составлен запрос where, т.е при помощи -
SELECT * FROM tickets as T WHERE T.ID = '10' OR T.ID = '20' ORDER BY T.ID = '10' desc, T.ID = '20' desc
можно получить в результате table [ID]|[Value]
10 | Value1
20 | Value2
Какой аналог есть для mssql?

9 ответов

5 просмотров
Drunk- Автор вопроса

https://docs.microsoft.com/en-us/sql/t-sql/queries/select-order-by-clause-transact-sql?view=sql-server-ver15 , ORDER BY CASE WHEN

В мсскл так SELECT * FROM tickets as T WHERE T.ID = '10' OR T.ID = '20' ORDER BY T.ID desc

Drunk- Автор вопроса
Mikhail M
В мсскл так SELECT * FROM tickets as T WHERE T.ID ...

Уже ответил сам себе, решено с помощью case when, мне нужно было что бы в результате я получил таблицу где результат был отсортирован так как он был запрошен в where, к прим Where IN (10,20,15) я и получил 10 | value1 20 | value2 15 | value3 В случае если просто t.id desc - вся нужная мне логика рушится.

Drunk
Уже ответил сам себе, решено с помощью case when, ...

Если. Уже решено, то супер. Работает вариант в вопросе?

Drunk- Автор вопроса
Mikhail M
Если. Уже решено, то супер. Работает вариант в воп...

Вариант в вопросе - не работает, работает вариант с использованием order by case when

Order by - стандартная фраза в SQL, её поддерживают все СУБД

Drunk- Автор вопроса
Ilya Zviagin
Order by - стандартная фраза в SQL, её поддерживаю...

Order by *column*=value в ms не поддерживается вроде

Drunk
Order by *column*=value в ms не поддерживается вро...

Я понял о чём это. MySQL - наверное, единственная СУБД, где в языке есть тип boolean. Поэтому там можно написать булево выражение где угодно и оно будет как-то работать. Во многих других СУБД булевого типа нет вообще, булевы выражения писать в соответствующих фразах можно, но в системе типов этого нет, как бы объяснить - булево выражение прописывается на уровне синтаксиса, а не семантики выражения. В общем, такие трюки как у тебя, мало переносимы на другие СУБД, пиши Case expression всегда, даже в MySQL

Похожие вопросы

Обсуждают сегодня

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта