Какие альтернативы реализуют следующий запрос:Есть тройной оператор в T-Sql?
select *
from table
where isExternal = @type = 2 ? 1 : 0
Какие альтернативы реализуют следующий запрос:Есть тройной оператор в T-Sql?
select *
from table
where isExternal = @type = 2 ? 1 : 0
Использование case
:
select *
from table
where isExternal = case @type when 2 then 1 else 0 end
В SQL Server , вы могли бы использовать IIF
function:
SELECT *
FROM table
WHERE isExternal = IIF(@type = 2, 1, 0)
Также обратите внимание на : в T-SQL оператор присваивания (и сравнения) равен =
(а не ==
- это C#)
Конечно, ответ на вопрос, который вы задаете в своем названии, - конечно. Оператор ['BETWEEN'] (https://msdn.microsoft.com/en-us/library/ms187922.aspx) определен для принятия трех аргументов. То, что вы искали, было оператором * conditional *, который * бывает * единственным оператором, определяющим три аргумента, определенные большинством языков. –
@JFA - нет, * a * тернарный оператор - любой оператор, который принимает три операнда. В большинстве языков *, если * у них есть любые тернарные операторы, обычно бывает, что у них есть только один, который (как правило) называется условным оператором. Вызывать вещи по неправильному имени (или используя общее название, когда вы имеете в виду конкретный), может привести к большей путанице. Для получения дополнительной информации обратитесь к тэгам wiki тега [tag: ternary-operator]. –
@Damien_The_Unbeliever https://en.wikipedia.org/wiki/Ternary_operation: см. «Тернарный оператор» –