Foros del Web » Bases de Datos » SQL Server »

Concatenar cadena en sql server

Estas en el tema de Concatenar cadena en sql server en el foro de SQL Server en Foros del Web. Buenas tengo algo similar a esto IF @periode=1 BEGIN Select * from table1 where condition=1 END else IF @periode=2 BEGIN Select * from table1 where ...
  #1 (permalink)  
Antiguo 18/11/2008, 04:40
 
Fecha de Ingreso: enero-2004
Ubicación: here I Am
Mensajes: 366
Antigüedad: 10 años, 6 meses
Puntos: 0
Concatenar cadena en sql server

Buenas tengo algo similar a esto


IF @periode=1
BEGIN
Select * from table1 where condition=1
END
else IF @periode=2
BEGIN
Select * from table1 where condition=2
END



Lo que quiero hacer es tener una SQL en una variable por ejemplo cad y dependiendo de la condición del IF concatenar esta cadena con una cadena o otra.

Resumiendo hacer algo tipo esto , pero que no consigo hacer funcionar , he buscado por google por "concatenar cadenas" pero no es bien bien esto.

declare cad as varchar(200)
@cad = 'Select * from table 1';
IF @periode=1
BEGIN
@cad = @cad + ' where condition = 1';
END
else IF @periode=2
BEGIN
@cad = @cad + ' where condition = 2';
END



salu2 radge
__________________
dime la ip http://www.dimelaip.es
  #2 (permalink)  
Antiguo 18/11/2008, 06:59
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.927
Antigüedad: 8 años, 11 meses
Puntos: 36
Respuesta: Concatenar cadena en sql server

Te falta SET.
Cita:
declare @cad varchar(200)
set @cad = 'Select * from table 1';
IF @periode=1
BEGIN
set @cad = @cad + ' where condition = 1';
END
else IF @periode=2
BEGIN
set @cad = @cad + ' where condition = 2';
END
o puedes hacerlo asi:
Cita:
declare @cad varchar(200)
set @cad = 'Select * from table 1 where condition = '+case when @periode=1 then '1' else '2' end
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 18/11/2008, 07:54
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 9 años, 7 meses
Puntos: 38
Respuesta: Concatenar cadena en sql server

O bien, sin utilizar SQL Dinamico...

Código:
Select * 
from    table1 
where  Case @periode 
            When 1  Then Case when condition = 1 Then 1 Else 0 End 
            When 2  Then Case when condition = 2 Then 1 Else 0 End 
       Else 0 End = 1
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #4 (permalink)  
Antiguo 18/11/2008, 11:03
 
Fecha de Ingreso: enero-2004
Ubicación: here I Am
Mensajes: 366
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Concatenar cadena en sql server

Al final hice esto , perfecto gracias a todos , pero ahora como le doi la orden que ejecute esa SQL que tengo como string ?


Código PHP:
IF @varaux is null
begin
set 
@cad='select xxxxx';
       
       IF @
periodo=15 and day(getdate())<15
       BEGIN  
          set 
@cad = @cad 'concateno SQL';
       
END
       
else IF @periodo=15 and day(getdate())>=15
       begin
          set 
@cad = @cad 'concateno la 2º SQL';
    
END
END 

salu2 radge
__________________
dime la ip http://www.dimelaip.es
  #5 (permalink)  
Antiguo 18/11/2008, 11:07
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.927
Antigüedad: 8 años, 11 meses
Puntos: 36
Respuesta: Concatenar cadena en sql server

Si te funciona asi, muy bien, pero creo que te falta validar un else para la segunda condicion.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #6 (permalink)  
Antiguo 18/11/2008, 11:12
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 9 años, 7 meses
Puntos: 38
Respuesta: Concatenar cadena en sql server

Código:
Execute (@cad)

o bien,

sp_executesql (@Cad)
En la ayuda de SQL encontraras los detalles.

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:03.
SEO by vBSEO 3.3.2