首页 > 解决方案 > 使用 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);
        }

标签: c#sqloracle

解决方案


like确定特定字符串是否与指定模式匹配。模式可以包括常规字符和通配符。所以你的查询基本上看id长度,如果它是10,那么它会尝试找到完全匹配,否则它会寻找任何以0开头的job_id(看起来很奇怪的逻辑)


推荐阅读