因项目中需要判断银行名称是否可用,所以需要精确匹配。我原本使用如下语句查询:
SELECT * FROM [gs_dictionary].[dict_category_detail] where code_text = '资阳雁江农村合作银行';
如下图可以返回两条记录:
但是后面测试的时候发现:如果银行名称后面带很多空格,sqlserver依然能查到结果。如下:
SELECT * FROM [gs_dictionary].[dict_category_detail] where code_text = '资阳雁江农村合作银行 ';
银行名称后面的空格会被自动忽略。而实际中,可能这样的银行名称是不合法的,我们需要返回查不到结果,那么怎么处理呢?我们可以使用like来查询,如下:
SELECT * FROM [gs_dictionary].[dict_category_detail] where code_text like '%资阳雁江农村合作银行%';
SELECT * FROM [gs_dictionary].[dict_category_detail] where code_text like '%资阳雁江农村合作银行 %';
这样我们的目的就达到了。