如果可以通过防止子串连接重建原始逻辑字符串的任何方式来处理子串字符串或将其呈现给用户,不完整字符即会违反关系模型。
SELECT multi_col FROM tablename WHERE multi_col[2,4] = 'A 2A3A4'
数据库服务器将 multi_col[2,4] 解释为有效的三个字节字符(多字节 6),而不是有效的四个字节字符的子串 ('sss')。
WHERE '6' = '6'
不完整字符不会出现在单字节代码集中,因为每个字符均以单字节的形式存储。如果数据库语言环境支持单字节代码集,并且您在查询中指定了列子串,那么查询会正确地返回请求的数据子集;不会用空格替换任何字符。