我的应用程序中的数据库使用空格将数据保存在表的字段中。但是当我查询数据时,它不考虑字段数据中的空格并且不考虑空格而给出所有结果
VAT_TABLE.VAR_DATA
------------------
I --- 1 space after I
I --- 2 space after I
I --- 0 space after I
I --- 1 space after I
I --- 3 space after I
I --- 4 space after I
当我运行此查询>>> SELECT * FROM VAT_TABLE WHERE VAR_DATA = 'I '
结果显示所有6行,与“I”
之后的空格无关任何想法?
答案 0 :(得分:1)
DB2在比较两个字符串时特别忽略了尾随空格。
所以“我”==“我”==“我”
如果您想区分“我”和“我”,您需要: -
WHERE VAR_DATA = 'I' AND LENGTH(VAR_DATA) = 2
此行为反映了COBOL,MVS Assembler和PL / 1的比较逻辑,它们是最初开发DB2时目标平台上的主要语言。