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_CD
是char(3)
。
感谢您的帮助。
您的问题是SQL数据类型-char(3)
意味着字符串总是三个字符长-用空格填充到其定义的长度。
所以你真的要检查
LIKE '% %'
但似乎没有找到。
您应该在SQL中使用VARCHAR(3)
,那么您的字符串将只有实际长度!在您传入string.Empty
的情况下,它将是0个字符长的
If@SEG_CD是一个字符(3),则它将被填充为3个字符,因此它与相等
LIKE '%' + ' ' + '%'
请改用varchar或nvarchar。