怎么把某字段单词的首字母改为大写其它小写?

 

要改某字段的内容,要求改为大写的情况:
1、字段首字母
2、空格后的首字母
3、“-”后的首字母
其它都改为小写。

 

例如有表
id    name
1    aBC EFG
2    hij-klm
3    NOPQ

我需要的结果:
id    name
1    Abc Efg
2    Hij-Klm
3    Nopq

---------------------------------
--
  Author: liangCK 小梁
--
-------------------------------

--> 生成测试数据: @T
DECLARE @T TABLE (id INT,name VARCHAR(50))
INSERT INTO @T
SELECT 1,'aBC EFG' UNION ALL
SELECT 2,'hij-klm' UNION ALL
SELECT 3,'NOPQ'

--SQL查询如下:

;
WITH Liang AS
(
  
SELECT
        M.id,
       
SUBSTRING(M.name,N.number,1) AS s,
       
number
  
FROM @T AS M
       
JOIN master.dbo.spt_values AS N
           
ON number BETWEEN 1 AND LEN(M.name)
              
AND N.type='p'
)
UPDATE A SET
     name
=B.string.value('.','VARCHAR(max)')
FROM @T AS A
  
CROSS APPLY (
      
SELECT string=(
                 
SELECT
                     
CASE WHEN number=1 OR
                           (
SELECT s
                           
FROM Liang
                           
WHERE id=T.idAND number=T.number-1) IN(' ','-')
                            
THEN UPPER(s)
                         
ELSE LOWER(s) END
                
FROM Liang AS T
                
WHERE id=A.id
                
FOR XML PATH(''),TYPE
              )
   )
AS B

SELECT * FROM @t

/*
id          name
----------- --------------------------------------------------
1           Abc Efg
2           Hij-Klm
3           Nopq

(3 行受影响)
*/

 

 

 

------------------------------------------------------------------------
--
Author:  happyflystone 
--
Date  :  2009-03-16 10:35:16
--
Ver:     Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)
--
          Apr 14 2006 01:12:25
--
          Copyright (c) 1988-2005 Microsoft Corporation
--
          Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
--
     
--
----------------------------------------------------------------------

-- Test Data: ta
IF OBJECT_ID('ta') IS NOT NULL
   
DROP TABLE ta
Go
CREATE TABLE ta(id INT,name NVARCHAR(7))
Go
INSERT INTO ta
SELECT 1,'aBC' UNION ALL
SELECT 2,'hij-klm' UNION ALL
SELECT 3,'NOPQ'
GO
--Start
create function f_s(@s nvarchar(20))
returns varchar(20)
as
begin
   
set @s  = lower(@s)
   
declare @I int
   
set @I = 1
   
while right(left(@s,@i),1) in (' ','-')
       
set @I = @I + 1
   
return left(@s,@I -1) + char(ascii(substring(@s,@i,1))- 32)+ right(@s,len(@s) -@i)
end
go
SELECT
   
*,dbo.f_s(name)
FROM
    TA
drop function f_s


--Result:
/*

id          name   
----------- ------- --------------------
1           aBC     Abc
2           hij-klm Hij-klm
3           NOPQ    Nopq


*/
--End

### 回答1: 是的,MYSQL数据表的表名应该遵循一定的规范,以便于管理和维护。一般来说,表名应该具有描述性、简洁明了、易于理解和记忆的特点,并且应该遵循以下规则: 1. 表名应该全部采用小写字母; 2. 表名应该具有描述性,能够清晰地表达出表中所存储的数据; 3. 表名之间应该使用下划线进行分隔,不要使用空格或其他特殊字符; 4. 表名长度应该控制在一个合理的范围内,一般不建议超过 30 个字符。 例如,一个存储用户信息的数据表可以命名为 "user" 或 "user_info",而不是 "usr_inf" 或 "userinfo_table" 等不够规范的名称。 ### 回答2: 在项目工程中,MYSQL的数据表的表名是需要遵守一定规范的。表名的规范主要体现在以下几个方面。 首先,表名应该具有描述性。好的表名应该能够清楚地描述该表所存储的数据内容。通过表名,我们可以迅速了解到该表的作用和含义,提高了代码的可读性和维护性。 其次,表名应尽量避免使用特殊字符和空格。在MYSQL中,表名是由字母、数字和下划线组成的,不支持特殊字符和空格。因此,为了避免出现一些不必要的问题或者错误,我们应该规避使用这些特殊字符。 此外,表名的命名也应该遵循一定的约定。有一些常见的命名约定和规范可以参考,如使用下划线分割多个单词,避免使用缩写和简写,使用名词来表示表的内容等。 最后,表名应该具备一定的可扩展性。在项目开发中,可能存在需要对表进行修改或者新增字段的情况。为了提高代码的可维护性,表名应该具备一定的扩展性,可以减少对原有代码的修改。 总的来说,在项目工程中,MYSQL的数据表的表名是需要遵守一定规范的。这些规范主要包括具有描述性、避免特殊字符和空格、遵循命名约定和具备可扩展性等方面。遵守这些规范可以提高代码的可读性、可维护性和扩展性,提高项目的开发效率。 ### 回答3: 在项目工程中,MYSQL的数据表的表名是有一定规范的。 首先,表名应该具有描述性,能够清晰地表达该表所存储的数据的含义和用途。这样可以方便开发人员和其他人员理解和使用这些表。 其次,表名应该简洁明了,避免过长或过于复杂的表名。过长的表名不仅不利于代码的编写和阅读,也容易导致输入错误。所以,应该尽量使用简洁的语言来表达表的含义,并遵循命名规范。 此外,表名应该使用英文单词或常用的缩写词,而不是使用拼音或其他语言。因为英文是目前国际通用的编程语言和技术语言,使用英文表名可以方便国际合作开发和技术交流。 另外,表名应该使用下划线或者驼峰命名法来分隔单词,以提高可读性。一般来说,下划线命名法在MYSQL中更常见,即使用下划线(_)将单词分隔开。而驼峰命名法的首字母小写,后续单词首字母大写,适用于一些编程语言和技术中。 总而言之,在项目工程中,MYSQL的数据表的表名应该具有描述性,简洁明了,使用英文单词或常用缩写词命名,并使用下划线或者驼峰命名法进行分隔,以提高可读性和阅读性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值