c# - 使用 LIKE 将 Oracle 查询转换为 SQL Server 查询
问题描述
我正在转换使用 Oracle 数据库的应用程序。在部分代码中有一个条件(下)。在 ELSE 中,他们使用带有“{0}%”的 LIKE。数据库中id的长度总是8,所以我不明白为什么它检查长度为10。所以发生的情况是,如果用户输入一个有效的id(12345678),它总是会去ELSE . 但我不明白 LIKE 实际上在做什么。TSQL 的转换是什么?
if (id.Length == 10)
{
sb.Append("where job_id = :ID ");
}
else
{
sb.AppendFormat("where job_id like '{0}%' order by job_id desc ", id);
}
解决方案
like
确定特定字符串是否与指定模式匹配。模式可以包括常规字符和通配符。所以你的查询基本上看id长度,如果它是10,那么它会尝试找到完全匹配,否则它会寻找任何以0开头的job_id(看起来很奇怪的逻辑)
推荐阅读
- angular - 使用智能组件内的 2 个参数的方法重构智能/哑组件中的组件
- python - SMOTE,Python 中文本分类的过采样
- php - Parsley (2.8.1) 使用 php 验证唯一用户名
- webpack - vue-loader 没有在 webpack4 vue 生产模式下导入组件
- scala - 具有默认值支持的 Scala 通用 JSON 解析器
- mysqli - 如何使用 mysqli 中的一列获取最小和最大日期和时间?
- rust - 如何在 Rust 2018 中为 crate 起别名?
- r - tidyr 不在数据框中计算 NA
- asp.net - 托管 ASP.NET 站点
- lambda - Lambda 演算 beta 减少变量