You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake .NET Connector中LIKE参数化查询无返回结果问题

Snowflake .NET Connector 参数化LIKE查询无数据返回的解决办法

你的问题出在SQL语句的参数写法上:把参数占位符:Val1包裹在了单引号的字符串'%:Val1%'里,Snowflake会将其识别为普通文本,不会解析成参数,导致参数值没有被正确代入查询,所以查不到数据。

以下是两种正确的实现方式:

方法一:使用CONCAT函数拼接通配符与参数

通过Snowflake的CONCAT函数将通配符%和参数值组合,确保参数被正确解析:

string query = "select * from Table1 where Col1 LIKE CONCAT('%', :Val1, '%')";
var param = cmd.CreateParameter();
param.ParameterName = "Val1";
param.DbType = System.Data.DbType.String;
param.Value = Value1;
cmd.Parameters.Add(param);
var reader = cmd.ExecuteReader();

方法二:在参数值中包含通配符

直接在参数值里添加%,SQL中仅使用参数占位符:

string query = "select * from Table1 where Col1 LIKE :Val1";
var param = cmd.CreateParameter();
param.ParameterName = "Val1";
param.DbType = System.Data.DbType.String;
param.Value = $"%{Value1}%";
cmd.Parameters.Add(param);
var reader = cmd.ExecuteReader();

两种方式都能实现模糊查询需求,第一种无需在代码中处理通配符,逻辑更清晰;第二种则适合需要灵活控制通配符位置的场景。

内容的提问来源于stack exchange,提问作者Hasan Nazeer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:20:34