Como fazer uma comparação no SQL

7 respostas
C

Olá galera, blz ?

Queria saber como fazer uma comparação diretamente sa instrução do SQL.

Tipo, um int 5, comparar se na tabela aquela campo é 5 ou menor que 5, e exibir o resultado( esse eu sei :slight_smile: ).

OBS: os campos que possuem o número podem ser String ??? ele compara ???

Estou usando JSP e MySQL

Valeu

7 Respostas

R

[color=“darkblue”]Olá!
Vc faz o seguinte:

select * from tabela1, tabela2 where tabela1.codigo > 5 or tabela2.nome = ‘Meu nome’ or tabela2.nome like ‘%Meu Nome’;

Coloquei um exemplo com duas tabelas pra vc ver como fazer OK??
A clausula like é para vc pegar a parte q pode estar contida na string do banco!

espero ter ajudado!

[]'s[/color]

G

tu podes fazer uma comparação na clausula WHERE do teu SQL como se estivessa fazendo um IF :

campo1 >= campo2
ou
campo1 <= campo2
ou
campo2 > campo2
oi
campo2 < campo2

G

tu podes fazer uma comparação na clausula WHERE do teu SQL como se estivessa fazendo um IF :

campo1 >= campo2
ou
campo1 <= campo2
ou
campo2 > campo2
oi
campo2 < campo2

P

Se eu entendi o seu problema direito: tente utilizar a função TO_NUMBER(*) para fazer o cast antes de comparar…

Ex.:

select tb1., tb2.
from Tabela1 tbl1, Tabela2 tbl2
where to_number(tbl1.name) >= to_number(tbl2.name)

Espero ter de alguma forma ajudado…

C

Blz, mas eu posso fazer o seguinte, comparar o campo que está no banco com um que pego na página tipo

java.util.Calendar calendar = java.util.Calendar.getInstance();

int nDiaAtual =  calendar.get( calendar.DAY_OF_MONTH );

int nMesAtual = calendar.get( calendar.MONTH );

int nAnoAtual = calendar.get( calendar.YEAR );

no result set

select * from assinantes where assinantes.dia = nDiaAtual or assinantes.mes = nMesAtual or assinantes.dia = nAnoAtual;

tá certo ???

a minha tabela é a assinantes, os campos que quero testa é dia, mes e ano, quero comparar a data que está no banco com a da data atual.

S

Se o que você quer é encontrar um (ou vários!) registros onde dia, mês E ano sejam iguais aos valores obtidos do Calendar, então deve usar o operador AND.

select * from assinantes where assinantes.dia = nDiaAtual AND assinantes.mes = nMesAtual AND assinantes.dia = nAnoAtual;

Se usar OR,
todos registros que tenham o mesmo dia (14/04/04, 14/01/99 …) +
todos registros que tenham o mesmo mÊs (01/09/1980, 30/09/04 …) +
todos registros que tenham o mesmo ano (01/01/04 + outros 365!)

serão selecionados. Serão um “monte” de datas possíveis sem nenhuma relação direta enttre elas …

Por outro lado, acho um tanto estranho esta estrutura de tabela com campos para dia, mês e ano. Normalmente se usa uma coluna só com tipo de dados Date. Como você mesmo postou aí em cima, é muito fácil obtermos dia, mês e ano de uma data. Já juntar os três, viu o trabalho que dá? :o)

C

como sou iniciante não consegui usar o o Date do mysql e a melhor forma para eu resolver o meu problema foi essa :slight_smile:

então quer dizer que eu faço usando o and certo ?! beleza vou tentar, mas acho que vai dar certo.

Só resumindo, esse código vai testar quando uma página for carregada para exibir algumas empresas ela vai verificar a data de vencimento do contrato da empresa, ei ela testa com a data atual que eu pego no Calendar.

Valeu, mas vou logo avisando

se não der certo eu vou pergunta de novo :slight_smile:

valeu galera vcs são 10

Criado 13 de setembro de 2004
Ultima resposta 14 de set. de 2004
Respostas 7
Participantes 5