【问题标题】:SQL Server how to change 1 letter from lower case into upper case?SQL Server如何将1个字母从小写变为大写?
【发布时间】:2023-04-08 10:24:02
【问题描述】:

我有一列包含许多行。每行有大约 3 个单词的值。我想将该值的第一个字母更改为大写。只有第一个字母,例如 abc def ghi 变成 Abc def ghi。请帮我。谢谢!!

【问题讨论】:

    标签: sql-server uppercase


    【解决方案1】:

    由于您只需要大写字母中的第一个字符,您可以像这样使用STUFFUPPERLEFT

    DECLARE @val VARCHAR(100) = 'abc def ghi'
    SELECT STUFF(@Val,1,1,UPPER(LEFT(@Val,1)))
    

    输出

    Abc def ghi
    

    注意:如果字符串开头有空格,请在其他操作之前使用LTRIM

    【讨论】:

      【解决方案2】:

      完成! 谢谢大家

      UPDATE table SET column= CONCAT(upper(LEFT(column, 1)), 
                               SUBSTRING(column, 2,100));
      

      【讨论】:

      • 将 SUBSTRING(column, 2,100)) 替换为 SUBSTRING(column,2,LEN(column)-1) 因为您只需要在运行时测量长度。 100的长度不能固定(:
      【解决方案3】:

      您可以在下面使用LEFTRIGHT

      DECLARE @val VARCHAR(100) = 'abc def ghi'
      SELECT UPPER(LEFT(@val,1)) + RIGHT(@val, LEN(@val) -1)
      

      【讨论】:

        【解决方案4】:

        你可以试试这个:

        DECLARE @val VARCHAR(100) = 'abc def'
        SELECT UPPER(LEFT(@val,1)) + SUBSTRING(@val,2,LEN(@val))
        

        【讨论】:

          【解决方案5】:

          这也有效

          DECLARE @val VARCHAR(20) = 'abc def ghi'
          SELECT UPPER(SUBSTRING(@val,1,1))+SUBSTRING(@val,2,LEN(@val)-1)
          

          【讨论】:

            猜你喜欢
            • 2010-09-18
            • 1970-01-01
            • 2013-02-04
            • 1970-01-01
            • 2015-08-07
            • 2020-08-24
            • 2019-08-19
            • 2015-07-28
            相关资源
            最近更新 更多