我在存储过程sql中使用CASE条件对中间首字母进行分割双字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在存储过程sql中使用CASE条件对中间首字母进行分割双字符相关的知识,希望对你有一定的参考价值。

例如:代替Juan Juan Dela Cruz Eugenio成为Juan DC。欧金尼奥

SELECT
    (
        UPPER(lastName) 
        + ', '
        +UPPER(SUBSTRING(firstName,1,1)) + LOWER(SUBSTRING(firstName,2,99))
        +' '
        +Suffix
        +' '
        +(
            case
                when tb_persons.middleName = '' or tb_persons.middleName = ' ' or tb_persons.middleName is null
                then ''
                else
                UPPER(SUBSTRING(tb_persons.middleName,1,1))+'.'
            end)
    ) as name,
    UPPER(SUBSTRING(firstName,1,1)) + LOWER(SUBSTRING(firstName,2,99)) as 'firstName',
    UPPER(lastName) as 'lastName',middleName

FROM tb_persons
答案

    方法1:
  • SELECT CONCAT( PARSENAME(REPLACE(Name, ' ', '.'), 4), ' ', SUBSTRING(PARSENAME(REPLACE(Name, ' ', '.'), 3), 1, 1), SUBSTRING(PARSENAME(REPLACE(Name, ' ', '.'), 2), 1, 1), '.', PARSENAME(REPLACE(Name, ' ', '.'), 1) ) FROM ( VALUES ('Juan Dela Cruz Eugenio') ) T(Name)

以上是关于我在存储过程sql中使用CASE条件对中间首字母进行分割双字符的主要内容,如果未能解决你的问题,请参考以下文章

在sql中使用case语句根据某些条件对列进行分组

存储过程中如何使用Case嵌套

关于oracle存储过程中的sql拼接,大神进!!!

存储过程里面的CASE,WHEN,THEN的用法

Google Apps 脚本:自定义函数,仅根据条件连接多行中的首字母

sql 2000中存储过程中case怎么用?