Tsql T-SQL将非空列的一部分替换为空会生成错误
我有一个表变量,它的所有列都不能为null(每个列的定义都不能为null): 我用这个变量做了一些操作,并用一些文本初始化了“SampleColumnText” 然后我尝试用其他函数返回的文本替换它的某些部分。在某些情况下,函数返回NULL,因此我认为此代码会生成错误:Tsql T-SQL将非空列的一部分替换为空会生成错误,tsql,replace,null,notnull,Tsql,Replace,Null,Notnull,我有一个表变量,它的所有列都不能为null(每个列的定义都不能为null): 我用这个变量做了一些操作,并用一些文本初始化了“SampleColumnText” 然后我尝试用其他函数返回的文本替换它的某些部分。在某些情况下,函数返回NULL,因此我认为此代码会生成错误: REPLACE(SampleColumnText , '{*}', @InitByFunctionText) 其中@InitByFunctionText这次为空 因此,当我仅将部分文本替换为NULL而不是全部文本时,是否会生成
REPLACE(SampleColumnText , '{*}', @InitByFunctionText)
其中@InitByFunctionText这次为空
因此,当我仅将部分文本替换为NULL而不是全部文本时,是否会生成正常错误?我最近遇到了类似的情况,以下内容解决了这个问题:
REPLACE(SampleColumnText , '{*}', ISNULL(@InitByFunctionText, ''))
我最近也有过类似的经历,以下是我对这个问题的看法:
REPLACE(SampleColumnText , '{*}', ISNULL(@InitByFunctionText, ''))
这是预期的行为 如果任何一个参数为
NULL
,则返回NULL
如果要将其替换为空字符串(与NULL
不同),可以使用:
这是预期的行为 如果任何一个参数为
NULL
,则返回NULL
如果要将其替换为空字符串(与NULL
不同),可以使用:
REPLACE(SampleColumnText , '{*}', COALESCE(@InitByFunctionText,''))