INSTRUCAO SQL COM CAMPOS 0 OU 1
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:
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
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
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
eu acho que fazer na mesma query fica um pouco ilegÃvel.
eu faria duas querys
eu faria duas querys
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
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
resposta do fininho resolve seu problema.
Na verdade, esta solução eu já tinha.
Estava procurando alternativas... De qualquer forma, obrigado!
Estava procurando alternativas... De qualquer forma, obrigado!
Tópico encerrado , respostas não são mais permitidas