INSTRUCAO SQL COM CAMPOS 0 OU 1

FBUR 21/12/2010 15:16:39
#360099
Boa tarde.

Na minha tabela existe um campo chamado [Ô]status[Ô], que pode ser:
0 = inativo
1 = ativo

A questão é que eu gostaria de fazer apenas uma instrução SQL que retornasse:
- somente os ativos: caso o usuário assim queira;
- somente os inaativos: caso o usuário assim queira;
- todos: ativos e inativos.

Gostaria de fazer isso na mesma instrução SQL, tipo quando eu usava [Ô]ativo[Ô] ao invés de 1, e inativo ao invés de 0.
Ou seja, antes era assim:


[Ô]SELECT nome FROM alunos WHERE status = [ô][Ô] & cmbStatus.text & [Ô][ô][Ô]


Neste caso, se o usuário deixava a combobox em branco, esta SQL retornava os ativos e os inativos.

Mas e com 0 e 1? Como ficaria?

Agora tenho que passar o 0 ou o 1 para a instrução, desse jeito


dim status as integer

if cmbStatus.text = [Ô]ativos[Ô] then
status = 1
else
status = 0
end if
.
.
.

[Ô]SELECT nome FROM alunos WHERE status = [Ô] & status


Quando o campo status no banco era tipo texto, era só selecionar uma linha vazia da combobox que o banco entendia que eram todos. Assim eu podia usar a mesma instrução SQL para ativos, inativos ou todos.

Mas como fazer isso com o campo status sendo numérico, lembrando que eu gostaria de usar somente uma instrução SQL.
Sei que dá para fazer duas instruções. [Ô]Se for selecionado um texto vazio na combo, retorne tudo, caso contrário veja o que foi selecionado (ativo ou inativo) e retorne.

Gsotaria de saber se dá para fazer uma instrução apenas que me retorne o que eu precisar, só que com o campo status sendo numérico.

[]'s
MARCOSLING 21/12/2010 15:31:26
#360105
eu acho que fazer na mesma query fica um pouco ilegível.

eu faria duas querys
FININHO 21/12/2010 15:39:20
#360106
dim criterio as string

if cmbStatus.text = [Ô]ativos[Ô] then
criterio = [Ô] WHERE status = 1[Ô]
elseif cmbStatus.text = [Ô]inativos[Ô] then
criterio = [Ô] WHERE status = 0[Ô]
else
criterio = [Ô][Ô]
end if

[Ô]SELECT nome FROM alunos[Ô] & criterio
XXXANGELSXXX 21/12/2010 16:51:53
#360123
resposta do fininho resolve seu problema.
FBUR 21/12/2010 17:04:14
#360124
Na verdade, esta solução eu já tinha.

Estava procurando alternativas... De qualquer forma, obrigado!
Tópico encerrado , respostas não são mais permitidas