SET ANSI 命 令
确定
SQL 字符串比较方式
语 法
SET ANSI ON | OFF
参 数 描 述
O N


在
较 短 的 字 符 串 后 面 加 入 空 格 以 使 它 与 较 长 的 字 符 串 具
有 相 同 的 长 度 然后 对 两 个 字 符 串 的 每 个 字 符 进 行 一 个 字
符 一 个 字 符 的 比 较
考 虑
以 下 比 较
'Tommy' = 'Tom'




如果将
SET ANSI 设置为 ON 因为填充空格的缘故 结果为 (.F.) Tom 变成了







Tom
字符串 Tom 与 Tommy 不是逐字匹配的

Visual
FoxPro SQL 命令 中 操作符 == 使用的就是这种比较方法
OFF
指 定
较 短 的 字 符 串 不 要 填 充 空 格 两 个 字 符 串 比 较 到 较 短 的
字 符 串 结 束 就 可 以
了
考 虑 以 下 比 较 :
'Tommy' = 'Tom'




当
SET ANSI 设置为 OFF 时 因为比较在 Tom. 之后就停止了 比较结果为 (.T.)
说 明



SET
ANSI 命令决定进行 SQL
字符串比较时是否在两个字符串中较短的一个后面加上空格 SET ANSI 对操作符
== 没有任何影响 当使用操作符 == 时
较短的字符串总是在其后加上空格后再进行比较
SET
ANSI 的作用域是当前数据工作期
SET ANSI 命 令 与 查 询 设 计 器





当创建查询时
Visual FoxPro 在查询设计器中建立一个 SELECT - SQL 命令
当创建连接和筛选条件时 如果选择了 Equal 或 Exactly Like 选项的话
操作符 = 或 == 包括在产生的 SELECT 命令中 SET ANSI
设置会影响在查询设计器中创建和执行的查询结果
字 符 串 顺 序



在
SQL 命令中 比较时 两个字符串的左右顺序没有影响 把字符串从操作符 = 或

==
的一边移到另一边不影响比较结果
请 参 阅
CREATE QUERY, MODIFY QUERY, SELEC T – SQ L, SET DATASESSION,
SET EXACT
