Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/04/2015, 05:19
GeriReshef
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Obtener registros en mayusculas

No se si esta solución es la más eficiente, pero me parece que es correcta y no hace falta crear nuevos objetos.
Los datos:
Código SQL:
Ver original
  1. CREATE TABLE #T(CAMPO1 VARCHAR(MAX));
  2. INSERT
  3. INTO    #T
  4. VALUES  ('información sobre EVENTOS todos los dias'),
  5.         ('navidades FUERA del pueblo.'),
  6.         ('fiesta para TODO el mundo');
La recuperación recursiva:
Código SQL:
Ver original
  1. WITH T AS
  2. (SELECT *,
  3.         (SELECT Iif(Ascii(SUBSTRING(CAMPO1,1,1)) BETWEEN 65 AND 90,CAMPO1,Stuff(CAMPO1,1,1,'#'))) NuevoCAMPO1
  4. FROM    (SELECT 1 N,
  5.                 CAMPO1
  6.         FROM    #T) T
  7. UNION ALL
  8. SELECT  N+1,
  9.         CAMPO1,
  10.         (SELECT Iif(Ascii(SUBSTRING(NuevoCAMPO1,N+1,1)) BETWEEN 65 AND 90,NuevoCAMPO1,Stuff(NuevoCAMPO1,T.N+1,1,'#'))) NuevoCAMPO1
  11. FROM    T
  12. WHERE   N+1<=Len(CAMPO1))
  13. SELECT  *,
  14.         REPLACE(NuevoCAMPO1,'#','') NuevoCAMPO
  15. FROM    T
  16. WHERE   N=Len(NuevoCAMPO1);
Si entre las mayusculas hay caracteres especiales tales como Á o Ñ, hay que añadir sus valores (ascii) a las condiciones.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog