SET ANSI 命 令

SET ANSI 命 令 - 图1确定 SQL 字符串比较方式

语 法

SET ANSI ON | OFF

参 数 描 述

O N

SET ANSI 命 令 - 图2SET ANSI 命 令 - 图3SET ANSI 命 令 - 图4在 较 短 的 字 符 串 后 面 加 入 空 格 以 使 它 与 较 长 的 字 符 串 具 有 相 同 的 长 度 然后 对 两 个 字 符 串 的 每 个 字 符 进 行 一 个 字 符 一 个 字 符 的 比 较

SET ANSI 命 令 - 图5考 虑 以 下 比 较

'Tommy' = 'Tom'

SET ANSI 命 令 - 图6SET ANSI 命 令 - 图7SET ANSI 命 令 - 图8SET ANSI 命 令 - 图9SET ANSI 命 令 - 图10如果将 SET ANSI 设置为 ON 因为填充空格的缘故 结果为 (.F.) Tom 变成了

SET ANSI 命 令 - 图11SET ANSI 命 令 - 图12SET ANSI 命 令 - 图13SET ANSI 命 令 - 图14SET ANSI 命 令 - 图15SET ANSI 命 令 - 图16SET ANSI 命 令 - 图17SET ANSI 命 令 - 图18Tom 字符串 Tom 与 Tommy 不是逐字匹配的

SET ANSI 命 令 - 图19SET ANSI 命 令 - 图20Visual FoxPro SQL 命令 中 操作符 == 使用的就是这种比较方法

OFF

SET ANSI 命 令 - 图21指 定 较 短 的 字 符 串 不 要 填 充 空 格 两 个 字 符 串 比 较 到 较 短 的 字 符 串 结 束 就 可 以

SET ANSI 命 令 - 图22

考 虑 以 下 比 较 :

'Tommy' = 'Tom'

SET ANSI 命 令 - 图23SET ANSI 命 令 - 图24SET ANSI 命 令 - 图25SET ANSI 命 令 - 图26SET ANSI 命 令 - 图27当 SET ANSI 设置为 OFF 时 因为比较在 Tom. 之后就停止了 比较结果为 (.T.)

说 明

SET ANSI 命 令 - 图28SET ANSI 命 令 - 图29SET ANSI 命 令 - 图30SET ANSI 命 令 - 图31SET ANSI 命令决定进行 SQL 字符串比较时是否在两个字符串中较短的一个后面加上空格 SET ANSI 对操作符 == 没有任何影响 当使用操作符 == 时 较短的字符串总是在其后加上空格后再进行比较

SET ANSI 命 令 - 图32SET ANSI 的作用域是当前数据工作期

SET ANSI 命 令 与 查 询 设 计 器

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

字 符 串 顺 序

SET ANSI 命 令 - 图39SET ANSI 命 令 - 图40SET ANSI 命 令 - 图41SET ANSI 命 令 - 图42在 SQL 命令中 比较时 两个字符串的左右顺序没有影响 把字符串从操作符 = 或

SET ANSI 命 令 - 图43SET ANSI 命 令 - 图44== 的一边移到另一边不影响比较结果

请 参 阅

CREATE QUERY, MODIFY QUERY, SELEC T – SQ L, SET DATASESSION,

SET EXACT