我遇到SQL任务问题(Microsoft SQL Server 2008)。
这是任务:以名字和姓氏的首字母为大写的方式显示客户的姓名和姓氏(例如Michael Jackson)。
我不知道如何在SQL中编写它。我知道它会是这样的:
select UPPER(name), UPPER(surname) from client ;
但它以高级形式显示所有字母。
答案 0 :(得分:0)
使用SUBSTRING
到UPPER
只是名字和姓氏的第一个字母,然后将它们分别连接到名字和姓氏的其余部分:
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 ║
╚═══════════╩══════════╝