如何使Oracle SQL输出匿名?

如何使Oracle SQL输出匿名?,sql,oracle,Sql,Oracle,我有一个关于输出的问题,它是由Oracle SQL创建的。以下是一个例子: SELECT e.firstname, e.lastname FROM employee e 此SQL语句创建了以下输出: Max, Mayer Lisa, Trump Marc, Zupper 现在我需要这样的解决方案: MXX, MXXXX LXXX, TXXXX MXXX, ZXXXX 重要的是,所有现有字符都将通过使用字符“X”而不是第一个字母来匿名。我可以用哪种方式创建这样的输出?我怎样才能解决这个问题

我有一个关于输出的问题,它是由Oracle SQL创建的。以下是一个例子:

SELECT e.firstname, e.lastname 
FROM employee e
此SQL语句创建了以下输出:

Max, Mayer
Lisa, Trump
Marc, Zupper
现在我需要这样的解决方案:

MXX, MXXXX
LXXX, TXXXX
MXXX, ZXXXX
重要的是,所有现有字符都将通过使用字符“X”而不是第一个字母来匿名。我可以用哪种方式创建这样的输出?我怎样才能解决这个问题


非常感谢

您可以使用
substr()
rpad()
的组合来实现:

SELECT substr(e.firstname,1,1)||rpad('X', length(e.firstname) - 1, 'X'), 
       substr(e.lastname,1,1)||rpad('X', length(e.lastname) - 1, 'X'), 
FROM employee e

为此,您可以使用
substr()
rpad()
的组合:

SELECT substr(e.firstname,1,1)||rpad('X', length(e.firstname) - 1, 'X'), 
       substr(e.lastname,1,1)||rpad('X', length(e.lastname) - 1, 'X'), 
FROM employee e

为此,您可以使用
substr()
rpad()
的组合:

SELECT substr(e.firstname,1,1)||rpad('X', length(e.firstname) - 1, 'X'), 
       substr(e.lastname,1,1)||rpad('X', length(e.lastname) - 1, 'X'), 
FROM employee e

为此,您可以使用
substr()
rpad()
的组合:

SELECT substr(e.firstname,1,1)||rpad('X', length(e.firstname) - 1, 'X'), 
       substr(e.lastname,1,1)||rpad('X', length(e.lastname) - 1, 'X'), 
FROM employee e

作为替代,这里有一种使用regex的方法

SELECT regexp_replace(e.firstname, '.', 'X',2), 
       regexp_replace(e.lastname, '.', 'X',2) 
FROM employee e

作为替代,这里有一种使用regex的方法

SELECT regexp_replace(e.firstname, '.', 'X',2), 
       regexp_replace(e.lastname, '.', 'X',2) 
FROM employee e

作为替代,这里有一种使用regex的方法

SELECT regexp_replace(e.firstname, '.', 'X',2), 
       regexp_replace(e.lastname, '.', 'X',2) 
FROM employee e

作为替代,这里有一种使用regex的方法

SELECT regexp_replace(e.firstname, '.', 'X',2), 
       regexp_replace(e.lastname, '.', 'X',2) 
FROM employee e

下面的查询将按预期显示

select rpad(substr(e.firstname,1,1),length(e.firstname),'X') as firstname,
    rpad(substr(e.lastname,1,1),length(e.lastname),'X') as lastname
     from employee e 

下面的查询将按预期显示

select rpad(substr(e.firstname,1,1),length(e.firstname),'X') as firstname,
    rpad(substr(e.lastname,1,1),length(e.lastname),'X') as lastname
     from employee e 

下面的查询将按预期显示

select rpad(substr(e.firstname,1,1),length(e.firstname),'X') as firstname,
    rpad(substr(e.lastname,1,1),length(e.lastname),'X') as lastname
     from employee e 

下面的查询将按预期显示

select rpad(substr(e.firstname,1,1),length(e.firstname),'X') as firstname,
    rpad(substr(e.lastname,1,1),length(e.lastname),'X') as lastname
     from employee e 

使用concat和regex_替换,这应该很简单。我不认为,这很容易。请告诉我一种使用concat和regex_替换的解决方法,这应该很简单。我不认为,这很容易。请告诉我一种使用concat和regex_替换的解决方法,这应该很简单。我不认为,这很容易。请告诉我一种使用concat和regex_替换的解决方法,这应该很简单。我不认为,这很容易。请给我一个解决办法