gpt4 book ai didi

sql - 创建具有泛型类型的函数

转载 作者:行者123 更新时间:2023-12-04 22:04:41 24 4
gpt4 key购买 nike

我在很多地方都使用了这个语法,

CASE WHEN [dbo].[IsNullOrWhiteSpace](@MyColumn) = 1 OR [dbo].[IsNullOrWhiteSpace](Name) = 0 THEN [Name] ELSE @MyColumn END

唯一的变化是名称和@MyColumn。但是 MyColumn 可以是任何类型。任何创建函数来执行此操作但具有通用类型的方法。这就是我要找的,

ALTER FUNCTION [dbo].[GetParameterOrPreviousValue]
(
@Value1 AnyType
,@Value2 AnyType
)
RETURNS AnyType
AS
BEGIN

RETURN CASE WHEN [dbo].[IsNullOrWhiteSpace](@Value1) = 1 OR [dbo].[IsNullOrWhiteSpace](@Value2) = 0 THEN @Value2 ELSE @Value1 END;

END

请参阅 AnyType。

更新

这是我的 IsNullOrEmpty,

ALTER FUNCTION [dbo].[IsNullOrWhiteSpace]
(
@Value nvarchar(MAX)
)
RETURNS bit
AS
BEGIN

RETURN CASE WHEN LTRIM(RTRIM(ISNULL(@Value,''))) = '' THEN 1 ELSE 0 END;

END

我在 UPDATE 语句中使用它,

UPDATE T SET    [Name] = dbo.GetParameterOrPreviousValue(@Name, Name) 
,[Gender] = dbo.GetParameterOrPreviousValue(@Gender, Gender)
,[Location] = dbo.GetParameterOrPreviousValue(@Location, Location)
,[RawData] = dbo.GetParameterOrPreviousValue(@RawData, RawData)

最佳答案

我想你可以使用 sql_variant .还有 [dbo].[IsNullOrWhiteSpace] 呢?它需要一个 String 类型吗?

关于sql - 创建具有泛型类型的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21729425/

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