SQL Server - Uso de patindex en base a resultado de query

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 90 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Uso de patindex en base a resultado de query

Publicado por Angel (4 intervenciones) el 01/06/2016 01:41:21
Hola buenas tardes mis estimados, espero puedan ayudarme en relación al siguiente inconveniente.

Resulta que estoy trabajando un proyecto, en el que necesito enmascarar un número de tarjeta de crédito que se encuentra en una cadena de numeros y carácteres, para ello estoy utilizando el metodo patindex para obtener la posición en la que inicia mi tarjeta,

El problema es que para saber que es una tarjeta, necesito comparar contra una tabla de tipos de tarjeta, por ejemplo, tengo la tabla de identificadores de tarjeta:

select identificador from identificadores_tarjeta
me devuelve este resultado
Identificador
-----------------
606060
606160
606263

y tengo la siguiente cadena 'Buenas tardes, la tarjeta es 6060600000000000'

opero la siguiente sentencia:
SELECT PATINDEX('%606060%', 'Buenas tardes, la tarjeta es 6060600000000000');

efectivamente de la sentencia anterior me devuelve que el valor buscado inicia en la posición 31, pero quisiera saber de que forma puedo hacer para que busque cualquiera de los valores que tengo en mi tabla identificadores_tarjeta.

Algo como esto, se que tiene error de sintaxis pero solo es para ejemplificar

SELECT PATINDEX(select identificador from identificadores_tarjeta), 'Buenas tardes, la tarjeta es 6060600000000000');

y que devuelva la posición en la que encuentra cualquiera de los valores de la tabla identificadores_tarjeta

De antemano muchas gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Uso de patindex en base a resultado de query

Publicado por Isaias (4558 intervenciones) el 02/06/2016 23:54:24
¿Porque no creas una funcion de usuario?, Resolverias tu problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 86
Ha disminuido su posición en 2 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Uso de patindex en base a resultado de query

Publicado por Rafael (110 intervenciones) el 03/06/2016 07:12:19
La solucion mas simple seria...

1
2
SELECT PATINDEX('%' +identificador+'%', 'Buenas tardes, la tarjeta es 6060600000000000')
FROM identificadores_tarjeta

Vaya a lo que te responde Isaias esto ya es una funcion... lo que tu planteas solo falta ponerle orden...

Saludos.
Pd. Si la información te sirve a mi me sirve un +1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar