【发布时间】:2016-06-18 23:25:51
【问题描述】:
下面的 emp 表没有以三个空格结尾的 ENAME。但是,下面的 SQL 语句的行为就像子句在末尾被修剪(就像 '%' 模式),因为它返回所有记录:
select ENAME from dbo.emp where ENAME like '% '
我尝试了许多其他数据库平台(包括 SQL Server、SQL Anywhere、Oracle、PostgreSQL、MySQL 等),我只在 Sybase/SAP ASE(版本 16)中看到过这种情况。这是一个错误还是“设计使然”?在这方面,online spec 中没有发现任何具体内容。
我正在寻找一个通用的修复程序,对模式应用一些简单的转换并返回任何其他平台所期望的内容。事先不知道该字段是什么数据类型或它包含什么类型的数据。
【问题讨论】: