1

只有天数据。

我正在测试charhexint。我想在 name1 字段中找到所有包含单词“robin”(十六进制为 0072006F00620069006E)的记录。为什么以下返回没有记录?

SELECT *
FROM table1
WHERE CHAR2HEXINT(name1)  LIKE '%0072006F00620069006E%'


PS
当我这样做的时候

SELECT *
FROM table1
WHERE name1  LIKE '%robin%'

我得到了很多记录。

4

1 回答 1

1

有两个可能的原因:

检查字符集name1,您的搜索字符串是 UNICODE,但该列可能是 LATIN:

WHERE CHAR2HEXINT(name1)  LIKE '%726F62696E%'

如果该列定义为 NOT CASESPECIFC 并且您的会话处于 Teradata 模式,则任何比较(包括 LIKE)都将不区分大小写,因此也会返回 Robin、ROBIN 等。当然 CHAR2HEXINT 为aand返回不同的值A

WHERE CHAR2HEXINT(UPPER(name1))  LIKE '%0052004F00420049004E%'
于 2013-10-24T15:17:07.933 回答