【发布时间】:2023-04-11 03:58:02
【问题描述】:
我一直在尝试在 SQL 中创建一个函数,如果我提供输入“这是一只猫”,它应该转换字母大小写并给出一个输出“这是一只猫”
以下是我编写的函数,但它似乎不起作用。它看起来像声明
SET @Char = SUBSTRING(@InputString,@Index,0)
并且似乎无法正常工作。
谁能帮忙解决这个问题。
CREATE FUNCTION changeCase (@InputString VARCHAR(4000) )
RETURNS VARCHAR(4000)
AS
BEGIN
DECLARE @Index INT
DECLARE @Char CHAR(1)
DECLARE @OutputString VARCHAR(255)
SET @OutputString = @InputString
SET @Index = 1
WHILE @Index <= LEN(@InputString)
BEGIN
SET @Char = SUBSTRING(@OutputString,@Index,0)
IF @Char != LOWER(@Char)
SET @OutputString = STUFF(@OutputString, @Index, 0,LOWER(@Char))
ELSE
SET @OutputString = STUFF(@OutputString, @Index, 0,UPPER(@Char))
SET @Index = @Index + 1
END
RETURN ISNULL(@OutputString,'')
END
【问题讨论】:
-
SUBSTRING(@OutputString,@Index,0)将导致问题,因为您将要检索的字符数指定为零。将其更改为SUBSTRING(@OutputString,@Index,1) -
你为什么用 [mysql] 标签来标记它?