Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

consulta: cómo traer solo ciertos caracteres de un campo

Estas en el tema de consulta: cómo traer solo ciertos caracteres de un campo en el foro de SQL Server en Foros del Web. hola que tal!, no sé si se pueda pero... tengo una campo string : Campo1: P-1 P-2 P-3 P-4 P-5 P-6 P-7 P-8 P-9 P-10 ...
  #1 (permalink)  
Antiguo 14/02/2009, 17:23
Avatar de Rbkrr  
Fecha de Ingreso: mayo-2002
Ubicación: Tamps. Mx
Mensajes: 277
Antigüedad: 22 años
Puntos: 0
consulta: cómo traer solo ciertos caracteres de un campo

hola que tal!,

no sé si se pueda pero...

tengo una campo string :

Campo1:
P-1
P-2
P-3
P-4
P-5
P-6
P-7
P-8
P-9
P-10
P-11

loque necesito saber es cómo obtener el valor mayor, es decir el P-11 ya que con el la instrucción MAX en sql pues me trae el P-9, hay alguna instrucción en donde pueda quitar la p- y ordenar los numeros y asi traerme el mayor ? o algo asi ?

digo por que tambien lo ordeno desc pero me pone primero el p-9


alguien puede ayudarme o darme una idea de qué pudiera hacer ?
__________________
:adios:
  #2 (permalink)  
Antiguo 21/02/2009, 09:34
 
Fecha de Ingreso: abril-2006
Ubicación: mexico
Mensajes: 287
Antigüedad: 18 años
Puntos: 2
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

si es string podrías manejarlo como cadena y tal vez quitarle la p con cuando la concatenas, o quitar los blancos despues a lo mejor por eso te toma el p-9 por qu eno toma entero el p-10 debería de ser mas grande, entonces dale un trim o algo parecido.
  #3 (permalink)  
Antiguo 23/02/2009, 11:16
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

Si siempre son P- y luego numeros.

SELECT MAX(CAST SUBSTRING(3, LEN(tucampo), tucampo) AS INT)
  #4 (permalink)  
Antiguo 23/02/2009, 16:18
Avatar de abel_c_b  
Fecha de Ingreso: junio-2008
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

hola iislas, al ejecutar la consulta dice:

Mens. 102, Nivel 15, Estado 1, Línea 1
Sintaxis incorrecta cerca de 'SUBSTRING'.
  #5 (permalink)  
Antiguo 23/02/2009, 16:59
Avatar de abel_c_b  
Fecha de Ingreso: junio-2008
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

Cita:
Iniciado por Rbkrr Ver Mensaje
hola que tal!,

no sé si se pueda pero...

tengo una campo string :

Campo1:
P-1
P-2
P-3
P-4
P-5
P-6
P-7
P-8
P-9
P-10
P-11

loque necesito saber es cómo obtener el valor mayor, es decir el P-11 ya que con el la instrucción MAX en sql pues me trae el P-9, hay alguna instrucción en donde pueda quitar la p- y ordenar los numeros y asi traerme el mayor ? o algo asi ?

digo por que tambien lo ordeno desc pero me pone primero el p-9


alguien puede ayudarme o darme una idea de qué pudiera hacer ?
primeroq que todo no , jejeje, es una broma, aca tienes lo que necesitas

SELECT MAX(CAST (SUBSTRING(campo,3, LEN(campo)) AS INT)) from prueba

habia que hacerle unos arreglos a la consulta de iislas, saludos
  #6 (permalink)  
Antiguo 23/02/2009, 21:47
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

Gracias por la correcion, no tengo forma de probarlo.

Saludos
  #7 (permalink)  
Antiguo 23/02/2009, 22:30
Avatar de Rbkrr  
Fecha de Ingreso: mayo-2002
Ubicación: Tamps. Mx
Mensajes: 277
Antigüedad: 22 años
Puntos: 0
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

Wow , qué maravillosos!
Muchas gracias, justo eso es lo que necesitaba, lo malo, es que me funciona a la perfección en sql, como consulta pero es que lo estoy tratando de aplicar al codigo en vb6 con un recordset pero me marca error , una consulta normal: "select * from ventas" por ejemplo funciona perfecto pero no se si por que son funciones avanzadas pero no me funciona aca me da el siguiente error :

Method 'Execute' of object'_connection' failed

sigo viendo otras formas de que estare haciendo mal.

Gracias!.
__________________
:adios:
  #8 (permalink)  
Antiguo 24/02/2009, 04:59
Avatar de abel_c_b  
Fecha de Ingreso: junio-2008
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

por lo que veo no creo que sea problema de la consulta si no de la forma como estas ejecutando dicha consulta, si quieres postea un poco de tu codigo para ver cual podria ser el problema, saludos
  #9 (permalink)  
Antiguo 24/02/2009, 11:15
Avatar de Rbkrr  
Fecha de Ingreso: mayo-2002
Ubicación: Tamps. Mx
Mensajes: 277
Antigüedad: 22 años
Puntos: 0
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

gracias, eh aquí:

Consulta = "select * from Pagos"
If ConPago.State <> 0 Then ConPago.Close
ConPago.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\Muebles.mdb;Persist Security Info=False"
If ConPago.State = 0 Then ConPago.Open
If conexionM.rsPagos.State = 0 Then conexionM.rsPagos.Open Consulta, ConPago, adOpenDynamic, adLockOptimistic
Set RegPago = Nothing
Set RegPago = ConPago.Execute("SELECT MAX(CAST(SUBSTRING(Codigo_pago, 3, LEN(Codigo_pago)) AS INT)) as Maximo FROM Pagos")

' Set RegPago = ConPago.Execute("select * from Pagos")

esté último que está comentariado si me pasa y el otro no :S cree una tabla similar en el una base de datos del enterprise manager y ahi en la consulta todo bien :S :O

gracias si pueden asesorarme
__________________
:adios:
  #10 (permalink)  
Antiguo 24/02/2009, 17:11
 
Fecha de Ingreso: febrero-2006
Mensajes: 155
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

Cita:
Iniciado por iislas Ver Mensaje
Si siempre son P- y luego numeros.

SELECT MAX(CAST SUBSTRING(3, LEN(tucampo), tucampo) AS INT)
Este es correcto y te puede servir, pero si usas una base de datos en Access entonces en lugar de SubString utilza Mid
  #11 (permalink)  
Antiguo 25/02/2009, 08:30
 
Fecha de Ingreso: junio-2008
Mensajes: 12
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

hola si vas a trabjar con string podrias rellenar con ceros luego de p- es decir quedaria
p-01
p-02
.
.
.
p-11

si va tener mas dijitos
p-001
.
.
p-999

asi cunado selecciones el maximos siempre te dara el maxio valor
  #12 (permalink)  
Antiguo 25/02/2009, 17:33
Avatar de Rbkrr  
Fecha de Ingreso: mayo-2002
Ubicación: Tamps. Mx
Mensajes: 277
Antigüedad: 22 años
Puntos: 0
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

asi es, lo malo es que me sigue dando el mensaje de error y haciendo la operacion paso a paso con el mid como dice robertocorona el error me lo marca con el CAST.
__________________
:adios:
  #13 (permalink)  
Antiguo 26/02/2009, 23:28
Avatar de Rbkrr  
Fecha de Ingreso: mayo-2002
Ubicación: Tamps. Mx
Mensajes: 277
Antigüedad: 22 años
Puntos: 0
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

Hola de nuevo,
bueno pues muchas gracias por sus aportaciones, y bien ya esta aqui: solo cambie el cast por el Cint. MIL GRACIAS A TODOS.

SELECT max(cint(mid(codigo_pago,3,Len(codigo_pago)))) FROM Pagos

besos.
__________________
:adios:
  #14 (permalink)  
Antiguo 27/02/2009, 12:10
Avatar de abel_c_b  
Fecha de Ingreso: junio-2008
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: consulta: cómo traer solo ciertos caracteres de un campo

Te felicito, saludos
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 22:04.