sql中怎么提取大写字母,例如给了一个人的英文姓名,然后用它们的首字母做缩写,Lily James LJ

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中怎么提取大写字母,例如给了一个人的英文姓名,然后用它们的首字母做缩写,Lily James LJ相关的知识,希望对你有一定的参考价值。

参考技术A -----In Oracle
select
replace(
replace(
translate(
'Lily James',
'abcdefghijklmnopqrstuvwxyz',
rapd('#',26,'#')
),
'#',
''),
' ',
'')
from t1

--In MSSQL
create function udf_GetFirst
(
@string varchar(max)
)
return varchar(max)
begin
declare @length int,@increment int,@newString varchar(max)
declare @curChar char(1),@preChar char(1)
set @length=len(@string)
set @increment=1
set @newString=''
set @preChar=' '
set @string=lower(@string)
while @increment<=@length
begin
set @curChar=substring(@string,@increment,1)
set @newString=@newString+
case when @preChar=' '
then upper(@curChar) else @curChar end
set @preChar=@curChar
end
return(@newString)
end

显示姓名缩写而不是个人资料图片

【中文标题】显示姓名缩写而不是个人资料图片【英文标题】:Displaying name initials instead of profile picture 【发布时间】:2018-08-16 11:17:09 【问题描述】:

我正在尝试在 React JS 前端实现个人资料图片选项,类似于 Google Plus/Gmail 所做的。如果没有可用的头像,则提取并显示名称中单词的首字母,而不是头像。

我已经制作了适当的 div 和 CSS 用于显示,首字母也被提取出来但没有显示。 This image is a good example.

HTML:

<li className="nav-item">

                   <div id="container_acronym">
                     <div id="name_acronym">                        
                        this.acronym_name(this.state.lead_details.customer_name)
                     </div>
                    </div>                 
            </li>

CSS:

    #container_acronym 
    width: 90px;
    height: 90px;
    border-radius: 100px;
    background: #333;
  
  #name_acronym 
    width: 100%;
    text-align: center;
    color: white;
    font-size: 36px;
    line-height: 100px;
  

JavaScript:

acronym_name(str)
    var regular_ex=/\b(\w)/g;
    var matches = str.match(regular_ex);
    var acronym = matches.join('');
    document.getElementById("name_acronym").innerHTML = acronym;

【问题讨论】:

另外我收到“无法读取未定义的属性‘匹配’”错误。 您的this.state.lead_details.customer_name 必须是undefined 才能发生这种情况。 Check out conditional rendering 正确。它在 中未定义,因为我通过在其中添加 comsole.log() 发现了这一点。我不明白为什么会这样。 只有在从数据源中成功检索到lead_details 时,才应该渲染该部分。 在此代码块外检索。我尝试将上面的 HTML 替换为 console.log(this.state.lead_details.customer_name) 并在控制台中呈现名称。 【参考方案1】:

您需要从acronym_name(str) 函数返回名称,而不是设置innerHTML,例如:

...
acronym_name(str)
    var regular_ex=/\b(\w)/g;
    var matches = str.match(regular_ex);
    var acronym = matches.join('');
    //return the acronym
    return acronym;

【讨论】:

当我调试我的代码时,innerHTMLreturn acronym 都做了同样的事情。我在上面的 cmets 中添加了工作代码的链接。

以上是关于sql中怎么提取大写字母,例如给了一个人的英文姓名,然后用它们的首字母做缩写,Lily James LJ的主要内容,如果未能解决你的问题,请参考以下文章

sql语句提取学生id为20到40的学生姓名、学生介绍,新生信息表主键sid,主要是不到怎么取id20到40的,

SQL大写函数[重复]

SQL中怎样提取纯数字或者纯字母的字段??

SQL Server 如何提取汉字首字母

用一条SQL语句查询出所有员工姓名的字母前三位

怎么用VBA提取打卡数据的姓名、工作时长、加班时长和公休日时长到列表中?