在SELECT语句中向字符串添加字符

问题描述

我有一个名为Name的表,其员工姓名格式为Lastname,Firstname。我将它们切换到了Firstname Lastname

但是,诸如“ Zorro”和“ Jessia Kim”之类的名称并未受到此影响,因为它们没有逗号。相反,我需要加一个“!”在他们面前,以便管理员稍后可以更改它们。有什么办法可以添加“!” SELECT语句中的那些名称?

这是我目前拥有的:

SELECT SUBSTRING(Name,CHARINDEX(',',Name) + 1,LEN(Name)) + ' ' +
REPLACE(SUBSTRING(Name,1,Name)),'') AS NewName
FROM Employees

右侧是它的外观。

reference

解决方法

我认为您想要一个case表达式:

select 
    case when charindex(',',name) > 0
        then substring(name,charindex(',name) + 1,len(name)) 
            + ' ' 
            + substring(name,1,name) - 1) 
        else '!' + name
    end as newname
from employees

基本上,这会检查name是否包含逗号。如果确实如此,那么它将按照您的预期切换两个部分。如果不是,那么它将!连接在字符串的开头。

请注意,我优化了一些用于反转名字和姓氏的逻辑-我认为您不需要replace()

,

在这里

SELECT IIF(CHARINDEX(',Name)<=0,'!'+Name,SUBSTRING(Name,CHARINDEX(',Name) + 1,LEN(Name)) + ' ' +
          REPLACE(SUBSTRING(Name,Name)),'')
        )

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...