SQL大写函数

时间:2014-04-02 20:20:28

标签: sql sql-server-2008

我遇到SQL任务问题(Microsoft SQL Server 2008)。

这是任务:以名字和姓氏的首字母为大写的方式显示客户的姓名和姓氏(例如Michael Jackson)。 我不知道如何在SQL中编写它。我知道它会是这样的:

select UPPER(name), UPPER(surname) from client ;


但它以高级形式显示所有字母。

2 个答案:

答案 0 :(得分:0)

使用SUBSTRINGUPPER只是名字和姓氏的第一个字母,然后将它们分别连接到名字和姓氏的其余部分:

select
    UPPER(SUBSTRING(name, 1, 1)) + SUBSTRING(name, 2, LEN(name)),
    UPPER(SUBSTRING(surname, 1, 1)) + SUBSTRING(surname, 2, LEN(surname))
from client;

虽然这应该解决您提出的问题,但请注意,它无法正确处理姓氏中的大写(例如'MacDowell'),这需要额外的逻辑。

答案 1 :(得分:0)

DECLARE @FirstName NVARCHAR(20) = 'michael';
DECLARE @LastName  NVARCHAR(20) = 'jackson';

SELECT UPPER(LEFT(@FirstName, 1)) + RIGHT(@FirstName, LEN(@FirstName)-1) AS FirstName
      ,UPPER(LEFT(@LastName, 1))  + RIGHT(@LastName, LEN(@LastName)-1) AS LastName

结果

╔═══════════╦══════════╗
║ FirstName ║ LastName ║
╠═══════════╬══════════╣
║ Michael   ║ Jackson  ║
╚═══════════╩══════════╝