我正在使用 Oracle DB 11g
我有一个数据库表,其主键是 CHAR(4) - 尽管该列仅使用数字。
我注意到有些记录显示“0018”或“0123”。
我注意到很少有奇怪的事情并且需要一些帮助
- CHAR 列是否“自动”将零填充到某个值?
-我还注意到,在编写 SQL 时,如果我不在 where 子句中使用引号,它会返回结果,但如果我使用引号,它不会返回结果?例如
DB CHAR(4) 列的键为“0018”
我用这个查询
SELECT * FROM TABLE_A WHERE COLUMN_1=18;
Run Code Online (Sandbox Code Playgroud)
我按预期得到了行。
但是当我尝试以下操作时
SELECT * FROM TABLE_A WHERE COLUMN_1='18';
Run Code Online (Sandbox Code Playgroud)
这不起作用,但它又起作用了
SELECT * FROM TABLE_A WHERE COLUMN_1='0018';
Run Code Online (Sandbox Code Playgroud)
所以我有点困惑第一个查询如何在没有引号的情况下按预期工作?