【发布时间】:2013-01-21 17:26:20
【问题描述】:
我正在为 firebird 使用 SQLManager Lite,到目前为止,还不可能编写一个对 char/varchar 列执行操作的查询。字符集是win1252。
类似的查询
select * from Person where name = 'John'
尽管记录存在于数据库中,但不会返回任何结果。对数值列的类似查询工作得很好。 我在这里有什么遗漏吗?
此外,此查询在我的应用程序中运行良好。唯一的问题是我也希望能够在 SQLManager Lite 中运行它。附带说明一下,char 和 varchar 列的值不会在同一个 SQLManager Lite 中正确显示。
【问题讨论】:
-
char列用空格填充到定义的长度(根据 SQL 标准的要求)。varchar不是。我几乎找不到任何理由使用char而不是varchar。 -
即使列定义为 char(1),结果也是一样的。
-
“显示不正确”是什么意思?如果您从表中为名称为“John”的记录选择 *,会显示什么?
-
试试这个(select * from Person where name like 'John')