gpt4 book ai didi

sql-server - 如何在 T-SQL 中重新创建 InitCap() 函数以将首字母大写应用于字符串?

转载 作者:行者123 更新时间:2023-12-02 02:44:55 24 4
gpt4 key购买 nike

我的数据库中有一个表。我的表的名称是“公司”。我想将数据“company_name”更改为大写首字母。例如;

“ABC公司”

“DEF 可塑性”

作为

“Abc 公司”

“定义可塑性”

我知道我应该使用“UPDATE”命令。但如何呢?感谢您的帮助!

(CONCAT 不起作用)

最佳答案

SQL Server 没有像 oracle 那样的 Initcap 函数。

您可以为 Initcap 创建 UDF。

CREATE FUNCTION [dbo].[InitCap] ( @InputString varchar(4000) ) 
RETURNS VARCHAR(4000)
AS
BEGIN

DECLARE @Index INT
DECLARE @Char CHAR(1)
DECLARE @PrevChar CHAR(1)
DECLARE @OutputString VARCHAR(255)

SET @OutputString = LOWER(@InputString)
SET @Index = 1

WHILE @Index <= LEN(@InputString)
BEGIN
SET @Char = SUBSTRING(@InputString, @Index, 1)
SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
ELSE SUBSTRING(@InputString, @Index - 1, 1)
END

IF @PrevChar IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(')
BEGIN
IF @PrevChar != '''' OR UPPER(@Char) != 'S'
SET @OutputString = STUFF(@OutputString, @Index, 1, UPPER(@Char))
END

SET @Index = @Index + 1
END

RETURN @OutputString

END
GO

检查 UDF 是否正常工作

select [dbo].[InitCap] ('stackoverflow com');

Stackoverflow Com

你可以像这样更新你的表格

update table
set column=[dbo].[InitCap](column);

关于sql-server - 如何在 T-SQL 中重新创建 InitCap() 函数以将首字母大写应用于字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11688182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com