我有一个逃生路线,在任何情况下我都会设法撤出一定数量的人口。 在一种情况下,我使用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,
答案 0 :(得分: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