se puede en un SELECT insertar un IF?

se puede en un SELECT insertar un IF?

Postby goosfancito » Tue May 27, 2014 3:45 pm

Hola.
Tengo una tabla con dos campos:
cCampo1 que tiene un id
cCampo2 un string que puede contener:
111
011
000
101

y quiero hacer un select sobre esta tabla pero que solo me devuelva los que en la posicion 2 del cCampo2 contenga un "1", o sea:
111
011

Se puede hacer eso en un select?

gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: se puede en un SELECT insertar un IF?

Postby karinha » Tue May 27, 2014 4:10 pm

algo asi:

Code: Select all  Expand view  RUN

   select if(promedio>5,'Aprobado','Desaprobado') from notas
 


Salu2
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: se puede en un SELECT insertar un IF?

Postby joseluisysturiz » Tue May 27, 2014 4:49 pm

Un ejemplo usando IF y WHEN, saludos... :shock:

Code: Select all  Expand view  RUN
cQryCerti := "SELECT *, CASE certi_status WHEN 0 THEN 'Anulado' " +;
      "WHEN 1 THEN 'Pendiente' WHEN 2 THEN 'Retornado' " +;
      "WHEN 3 THEN 'En Mora' END AS cEstado, " +;
      "IF(certi_1 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + ", 'PRIMERO', " +;
      "IF(certi_2 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + ", 'SEGUNDO', " +;
      "IF(certi_3 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + ", 'TERCERO', " +;
      "IF(certi_4 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + ", 'CUARTO', " +;
      "IF(certi_5 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + ", 'QUINTO', " +;
      "IF(certi_6 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + ", '_', " +;
      "IF(certi_7 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + ", 'SEPTIMO', ''))))))) AS posicion FROM piramide_certificados " +;
      "WHERE" +;//(certi_status = 1 OR certi_status = 3) AND" +;
      " (certi_1 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + " OR" +;
      " certi_2 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + " OR" +;
      " certi_3 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + " OR" +;
      " certi_4 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + " OR" +;
      " certi_5 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + " OR" +;
      " certi_6 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + " OR" +;
      " certi_7 = " + ClipValue2SQL( Val2Escape( oQry:parti_cedula ) ) + ") " +;
      "ORDER BY certi_fecha_impresion" // 0=Anulado, 1=Vendido, 2=Retornado, 3=En Mora
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: se puede en un SELECT insertar un IF?

Postby goosfancito » Tue May 27, 2014 9:22 pm

(Y)
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: se puede en un SELECT insertar un IF?

Postby Marcelo Via Giglio » Wed May 28, 2014 12:29 am

Hola,

dependiendo el DBMS puedes hacer algo asi

SELECT *
FROM tabla
WHERE substr( campo2, 2, 1 ) = '1'

revisa la función equivalente a substr del DBMS que estés utilizando, en MySQL SUBSTRING(str,pos,len) pero creo que SUBSTR es un sinónimo

saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1065
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: se puede en un SELECT insertar un IF?

Postby jrestojeda » Wed May 28, 2014 3:14 pm

Hola...

SELECT * FROM TUTABLA WHERE SUBSTRING(CAMPO2,2,1) LIKE "1"

Eso debería salir con fritas!!
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: se puede en un SELECT insertar un IF?

Postby goosfancito » Wed May 28, 2014 5:34 pm

perfecto!
y salio nomas.

gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 67 guests