SQL Server存储过程无法识别字符串.empty带有like

本文关键字:字符串 empty 带有 like 识别 Server 存储过程 SQL | 更新日期: 2023-09-27 18:21:48

我正在将string.empty从C#传递到SQL Server中的存储过程。

我使用的是带有like条件的string.empty

CCD_ 4作为CCD_ 5从C#传入。

LIKE '%' + @SEG_CD + '%'

但它获取0条记录。

但是当我在存储过程中这样做时:

LIKE '%' + '' + '%'

它获取正确的行数。

我尝试在C#中修剪值,但它也不起作用。

在C#中,SEG_CD是一个字符串,而在存储过程中,SEG_CDchar(3)

感谢您的帮助。

SQL Server存储过程无法识别字符串.empty带有like

您的问题是SQL数据类型-char(3)意味着字符串总是三个字符长-用空格填充到其定义的长度。

所以你真的要检查

LIKE '%   %'

但似乎没有找到。

您应该在SQL中使用VARCHAR(3),那么您的字符串将只有实际长度!在您传入string.Empty的情况下,它将是0个字符长的

If@SEG_CD是一个字符(3),则它将被填充为3个字符,因此它与相等

LIKE '%' + ' ' + '%'

请改用varchar或nvarchar。