我有一个将表中的值映射到报告的逗号连接字符串的过程。
不幸的是,由于用户界面错误,一些值'none'
与null
. 我很确定这个'none'
值只是一个字符串,所以我的程序试图这样处理它。
如果遇到'none'
,该过程不应返回任何内容,但事实并非如此。例如,如果我传递'none'
到@DrugUse
下面,它应该什么都不返回,对吧?但是,它仍然返回'd'
。那么我做错了什么?
ALTER FUNCTION [dbo].[MapConsumerAdvice]
(
@AdultThemes as VarChar,
@DrugUse as VarChar
)
RETURNS VarChar(20)
AS
BEGIN
DECLARE @Result as VarChar(999)
SET @Result = ''
IF (@AdultThemes > 0)
SET @Result = ',' + 'a'
IF (@DrugUse IS NOT NULL) AND (@DrugUse != 'none')
SET @Result = @Result + ',' + 'd'
RETURN SUBSTRING(@Result, 2, LEN(@Result))