0

我有一个逃生方法,我试图在任何情况下撤出一定的人口。在其中一种情况下,我使用 SQL Server 的 Try_convert,它实际上可以向我返回 NULL。会发生什么:如果它返回我 NULL 并且实际上将有一个 NULL 值字段,它不会给我我没有问的答案是 null。它有一个简短而有效的解决方案吗?

我的代码:

ALTER FUNCTION [dbo].[GetMortgageDetailsId] 
(@GetFiled nvarchar(8)='00000000')
RETURNS int
AS
BEGIN

   declare @MortgageDetailsId int = null

   set @MortgageDetailsId= (select top 1 t.id from Table_1 t
       WHERE t.filed1 = TRY_CONVERT(date,SUBSTRING(@GetFiled, 5, 4) + SUBSTRING(@GetFiled, 3, 2) + SUBSTRING(@GetFiled, 1, 2)))

   RETURN @MortgageDetailsId

END

字段的定义filed1是:

[filed1] [date] NULL,
4

1 回答 1

0

需要问:

ALTER FUNCTION [dbo].[GetMortgageDetailsId] 
(@GetFiled nvarchar(8)='00000000')
RETURNS int
AS
BEGIN

   declare @MortgageDetailsId int = null

   set @MortgageDetailsId= (select top 1 t.id from Table_1 t
       WHERE t.filed1 = (TRY_CONVERT(date,SUBSTRING(@GetFiled, 5, 4) + SUBSTRING(@GetFiled, 3, 2) + SUBSTRING(@GetFiled, 1, 2))))
                      or (@GetFiled='00000000' and t.filed1 is null))

   RETURN @MortgageDetailsId

END
于 2019-01-29T10:12:14.573 回答