Concatenar no SQL SERVER
-
domingo, 3 de fevereiro de 2008 09:23No My SQL eu uso assim e funciona:
SELECT count(cod_noticia) as total FROM noticia where cod_noticia <> 0 And CONCAT(titulo,' - ',resumo,' - ',texto) like '%casa%'
Já no SQL SERVER estou tentando fazer assim e não está funcionando, alguém sabe por que????
SELECT count(cod_noticia) as total FROM noticia where cod_noticia <> 0 And (titulo + resumo + texto) like '%casa%'
Dá o seguinte erro:
Microsoft OLE DB Provider for SQL Server error '80040e14'
Invalid operator for data type. Operator equals add, type equals text.
Se que é problema de CONCATENAÇÃO.
Obrigado
Todas as Respostas
-
domingo, 3 de fevereiro de 2008 12:25
Olá Hémilton,
O problema é que você está tentando concatenar um campo do tipo Text com outra coluna, e não é possível fazer isso.
Como solução, se estiver no SQL 2005, pode converter o campo para VARCHAR (MAX) que comporta o mesmo tamanho que o Text, mas, se estiver no 2000, o máximo possível é 8000 caracteres, se tiver mais que isso, certamente vai dar erro na concatenação. Tente assim:
Code Snippet-- Para SQL 2005
SELECT
count(cod_noticia) as total FROM noticia where cod_noticia <> 0 And (titulo + resumo + CONVERT (VARCHAR (MAX), texto) like '%casa%'-- Para SQL 2000
SELECT
count(cod_noticia) as total FROM noticia WHERE cod_noticia <> 0 And (titulo + resumo + CONVERT (VARCHAR (8000), texto) LIKE '%casa%'Abraço
-
domingo, 3 de fevereiro de 2008 12:29
Hélmiton,
Os campos da condição (titulo + resumo + texto) precisam ser VARCHAR ou CHAR para funcionar.
Se o campo texto for do tipo text faça a conversão para VARCHAR.
Exemplo:
SELECT count(cod_noticia) as total FROM noticia where cod_noticia <> 0 And (titulo + resumo +
CAST(texto AS VARCHAR(8000))
) like '%casa%'
Ajude a melhorar o nosso Forum!
Não esqueça de marca a mensagem como "útil", caso tenha ajudado. -
segunda-feira, 4 de fevereiro de 2008 00:01Muito obrigado meu amigo, valeu mesmo
-
segunda-feira, 4 de fevereiro de 2008 13:02
Hélmiton,
Depois marque o post do Alexandre VM como útil e ajude a melhorar a qualidade do nosso fórum!
Obrigado.
-
terça-feira, 6 de março de 2012 10:12
ola Malta, preciso da vossa ajuda urgente, não sei trabalhar com o sql e tenho 3 tabelas ja criadas e preciso de ir a busca de uma caminho que está no disco C não sei como concatenar ou usar as 3 tabelas para a resolução
select * from e_obje00 ob, e_volu00, e_tbls00 são as tabelas que ja estão criadas
C:\0012\00000000 tenho de fazer de forma que estas tabelas me deiam essa caminho, como é que eu faço
Ajudem-me por favor
- Sugerido como Resposta Wilma_2012 terça-feira, 6 de março de 2012 10:13

