Ayy*_*yub 1 sql-function sql-server-2014
我需要创建一个 SQL Server 函数来检查输入字符串是否包含任何大写字符。如果是,那么它应该返回“OK”。如果不是,则应返回“NOT OKAY”。
当执行以下语句时,它应该返回预期值,如下所示。
PRINT dbo.CheckStringOfUpperAlphaOK('abc') -- Expected: "NOT OK"
PRINT dbo.CheckStringOfUpperAlphaOK('ABC') -- Expected: "OK"
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的,但我不知道如上所述指定返回值。
CREATE FUNCTION CheckStringOfUpperAlphaOK (@String varchar(MAX))
RETURNS VARCHAR(6)
AS
BEGIN
Declare @KeepValues as varchar(50)
Set @KeepValues = '%[^ ][A-Z]%'
While PatIndex(@KeepValues collate Latin1_General_Bin, @Temp) > 0
Set @Temp = Stuff(@Temp, PatIndex(@KeepValues collate
Latin1_General_Bin, @Temp) + 1, 0, ' ')
RETURN @Temp
Run Code Online (Sandbox Code Playgroud)
结尾
这个怎么样?我只是简单地将@String参数与检查大写字符的(简化)模式进行比较 - 并根据该索引,我定义返回值并返回适当的响应:
CREATE FUNCTION CheckStringOfUpperAlphaOK(@String varchar(MAX))
RETURNS VARCHAR(6)
AS
BEGIN
DECLARE @UpperCasePos BIGINT
SELECT @UpperCasePos = PATINDEX('%[A-Z]%' collate Latin1_General_Bin, @String)
DECLARE @Response VARCHAR(6)
IF @UpperCasePos > 0
SET @Response = 'OK'
ELSE
SET @Response = 'NOT OK'
RETURN @Response
END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4908 次 |
| 最近记录: |