Pergunta

Como selecionar um resultado de operador de comparação, como um campo com o tipo BIT?

Como ele funciona na C#:

bool isGreater = FieldA > FieldB;

Como ele não funciona no T-SQL:

SELECT (FieldA > FieldB) AS BIT FROM t

Como escrever tal tarefa corretamente?

Foi útil?

Solução

Você deve usar a cláusula de caso:

CASE
    WHEN FieldA > FieldB THEN 1
    ELSE 0
END AS [BIT]

Outras dicas

Select Convert(Bit, Case When FieldA > FieldB Then 1 Else 0 End) As YourBitColumn

Se você quiser retornar um POUCO, em seguida, você precisa converter (ou molde) para um tipo de dados bit, caso contrário, o SQL iria interpretar o codificado constante (1 ou 0) como um número inteiro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top