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.
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


0