gpt4 book ai didi

sql-server - 创建一个读取值并输出单词的函数

转载 作者:行者123 更新时间:2023-12-05 00:13:06 24 4
gpt4 key购买 nike

我有一个需要创建的函数,它读取表中列的值并将文本值输出到同一表中的新列中。相关列 (confidence_score) 将具有数值、字母或空值。

如果 confidence_score(nvarchar(2)) 是一个数字并且小于或等于 14,我需要计算列中包含“高”,否则为“低”。如果 confidence_score 不是数字且值为“H”,我需要计算列中包含“高”,否则为“低”。

这是我使用的代码:

CREATE FUNCTION dbo.avm_confidence_level(@score nvarchar)
RETURNS nvarchar(5) as
BEGIN
DECLARE @conversion as nvarchar(5)
IF isnumeric(@score) = 1 BEGIN
IF cast(@score as int) <= 14 BEGIN
Set @conversion = 'High'
END
ELSE BEGIN
Set @conversion = 'Low'
END
END
ELSE BEGIN
IF @score = 'H' BEGIN
Set @conversion = 'High'
END
ELSE BEGIN
Set @conversion = 'Low'
END
END

RETURN @conversion
END

我使用此代码得到的结果只对了一半。第一张支票(数字)似乎工作正常。当值不是数字时,我得到了我期望的高值和低值。这个问题似乎在 isnumeric being true 部分。无论 confidence_score 列中的实际数值是多少,我都会得到一个“高”值。我不确定我在这里做错了什么。

我感谢任何人可以提供的帮助。

谢谢。

最佳答案

这是因为您将函数参数定义为 nvarchar 而不是 nvarchar(2)。它会截断一个字符上的任何内容,因此所有大于 9 的整数都将变为 1。尝试将定义更改为:

CREATE FUNCTION dbo.avm_confidence_level(@score nvarchar(2))

关于sql-server - 创建一个读取值并输出单词的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12867902/

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