Sql server Sql Server iError函数
我有一个函数,返回公式的格式。它的某些部分----Sql server Sql Server iError函数,sql-server,dax,Sql Server,Dax,我有一个函数,返回公式的格式。它的某些部分---- if(CHARINDEX(@fieldname,@formula)0) 开始 声明@previouschar char=SUBSTRING(@formula,CHARINDEX(@fieldname,@formula)-1,1), @nextchar char=SUBSTRING(@formula,CHARINDEX(@fieldname,@formula)+len(@fieldname),1) 如果(@previouschar在('[',']
if(CHARINDEX(@fieldname,@formula)0)
开始
声明@previouschar char=SUBSTRING(@formula,CHARINDEX(@fieldname,@formula)-1,1),
@nextchar char=SUBSTRING(@formula,CHARINDEX(@fieldname,@formula)+len(@fieldname),1)
如果(@previouschar在('[',']','(',')','{','}','+','-','/','*'中)
和@nextchar in(“[”、“]”、“(”、“)”、“{”、“}”、“+”、“-”、“/”、“*”)
开始
设置@calFormula=replace(@calFormula,@fieldname,'FLD'+Convert(varchar,@flid)+'为空或FLD'+Convert(varchar,@flid)+'=''然后设置0.0其他转换(十进制(18,'+Convert(varchar,@decimalPlc)+'),FLD'+Convert(varchar,@flid)+')end')
终点
结束
设置@cnt1=@cnt1+1
终点
设置@calFormula=replace(@calFormula,[','')
设置@calFormula=replace(@calFormula,']','')
返回@calFormula
我想在Sql Server关系数据库中实现DAX的ISERROR方法,该方法将检查输入的除数是否为零,然后在计算公式中分配NULL。如何处理此问题?Sql中是否有类似ISERROR的替代方法?当然
iError(1/0)
将返回true(因为存在错误)
iError(1/1)
将返回false(无错误)
if(CHARINDEX(@fieldname,@formula)<>0)
Begin
declare @previouschar char = SUBSTRING(@formula, CHARINDEX(@fieldname, @formula)-1, 1),
@nextchar char = SUBSTRING(@formula, CHARINDEX(@fieldname ,@formula)+len(@fieldname), 1)
if(@previouschar in('[',']','(',')','{','}','+','-','/','*')
and @nextchar in ('[',']','(',')','{','}','+','-','/','*'))
Begin
set @calFormula= replace(@calFormula,@fieldname,' case when FLD'+Convert(varchar,@flid)+' is null OR FLD'+Convert(varchar,@flid)+'='''' then 0.0 else Convert(decimal(18,'+ Convert(varchar,@decimalPlc) +'),FLD'+Convert(varchar,@flid)+' ) end ')
End
end
set @cnt1=@cnt1+1
End
set @calFormula= replace(@calFormula,'[','')
set @calFormula= replace(@calFormula,']','')
return @calFormula