Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/07/2014, 09:19
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Elimnar el contenido de una columna

tus datos no tienen un standar para poder encontrar la relacion de lo que necesitas lo unico que veo es que tus codigos son todos de 10 caracteres por lo que hice este query:

Código SQL:
Ver original
  1. CREATE FUNCTION test_char (@cadena VARCHAR(MAX))
  2. RETURNS VARCHAR(MAX)
  3. AS
  4. BEGIN
  5.     --declare @cadena varchar(max)
  6.     DECLARE @cadena2 VARCHAR(MAX)
  7.     DECLARE @caracter VARCHAR(10)
  8.     DECLARE @resultado VARCHAR(20)
  9.     DECLARE @x INT
  10.     --set @cadena='Santa Fe a E0060A8620 Chajari TMA'
  11.     SET @resultado=''
  12.     SET @x=1
  13.     while @x<=len(@cadena)
  14.     BEGIN
  15.         SELECT @caracter=SUBSTRING(@cadena,@x,1)
  16.         IF @caracter=' '
  17.         BEGIN
  18.    
  19.             SELECT @cadena2=SUBSTRING(@cadena,1,@x)        
  20.  
  21.             IF len(@cadena2)=11
  22.             BEGIN
  23.                  SET @resultado=@resultado + @cadena2              
  24.             END
  25.  
  26.             SET @cadena=SUBSTRING(@cadena,len(@cadena2)+1,len(@cadena))
  27.             --print @cadena    
  28.             SET @x=1   
  29.         END
  30.         SET @x=@x+1
  31.     END
  32.  
  33.     RETURN @resultado
  34. END
  35.  
  36.  
  37. CREATE TABLE #resultado
  38. (
  39. campo VARCHAR(100)
  40. )
  41.  
  42. INSERT INTO #resultado VALUES ('SanJuanCCM to J0058A8605 Gobernador Cavez')
  43. INSERT INTO #resultado VALUES ('a M0116A8605 General Alvear')
  44. INSERT INTO #resultado VALUES ('Mendoza a M0041A8605 Cabral')
  45. INSERT INTO #resultado VALUES ('JONTE a C0900B8660 Anasco')
  46. INSERT INTO #resultado VALUES ('San Rafael a M1026A8630 San Rafael TASA')
  47. INSERT INTO #resultado VALUES ('to M0100A8660:')
  48. INSERT INTO #resultado VALUES ('Anasco a C0011A8605 Nunes')
  49. INSERT INTO #resultado VALUES ('SanLuisCCM a D0003A8605 Progreso CRM')
  50. INSERT INTO #resultado VALUES ('Bahia Blanca a B0789A8607 Tres Arroyos')
  51. INSERT INTO #resultado VALUES ('Santa Fe a E0060A8620 Chajari TMA')
  52.  
  53. SELECT dbo.test_char(campo) FROM #resultado
Y regresa esto como resultado:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
J0058A8605 Gobernador
M0116A8605
M0041A8605
C0900B8660
M1026A8630

C0011A8605
D0003A8605
B0789A8607

Como ves regresa algunos datos con mas informacion(como gobernador que tiene 10 caracteres de largo) y algunos como M0100A8660: no lo regresa porque tiene 11 carcteres de largo entre espacios, pero te regresara los que si cumplan y los que no (que supongo seran pocos) los podras acomodar de forma manual :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me