Soy nuevo y un principiante en SQL Query y he enfrentado problemas, por lo que espero poder buscar ayuda. He intentado buscar en línea, pero fue en vano.

Mi objetivo es reemplazar ciertos valores en una columna. Por ejemplo

Identificación del personal

1234962D 4321739P

¿Es posible reemplazar los primeros cuatro dígitos con un asterisco (*)? Algo como esto :

Identificación del personal

**** 962D **** 739P

He intentado usar reemplazar, izquierda y subcadena, pero me he enfrentado a problemas, como que el sistema selecciona y muestra solo los primeros 4 dígitos.

¡Agradezco cualquier ayuda!

-1
JavascriptStress 29 ene. 2015 a las 03:01

3 respuestas

La mejor respuesta
SELECT '****' + SUBSTRING(Staff_ID, 5, LEN(Staff_ID) - 4)

Le dará ****962D si el valor de entrada es 1234962D. Como dice FuzzyTree, puede usar CONCAT, pero solo si está usando SQL Server 2012 o posterior. Es útil porque convierte implícitamente valores nulos en una cadena vacía. Es menos útil si le preocupan los problemas de compatibilidad con versiones anteriores o la migración del código a otras versiones de SQL.

0
BobRodes 29 ene. 2015 a las 01:22

Puede utilizar una combinación de concat y substring

select concat('****',substring('1234962D4321739P', 5, 4)
    ,'****',substring('1234962D4321739P', 13, 4));
0
FuzzyTree 29 ene. 2015 a las 00:17

¿Probaste la función STUFF?

http://www.techonthenet.com/sql_server/functions/stuff.php

Desde el sitio:

STUFF( source_string, start, length, add_string )

Entonces puedes usarlo así

STUFF(column, 1, 4, '****')
2
cjay 29 ene. 2015 a las 00:21