ANSI SQL中的字符串搜索

时间:2018-11-28 13:46:49

标签: sql netezza

我正在使用Netezza。

我的表(TABLE1)中的我的一列(COMMENTS)带有文本。 COMMENTS列是自由文本列,并且可以包含任何文本。 以下是一些有关文本外观的示例:

OLD STUDENT:N(Y/N/U=UNKNOWN) Some other text could be here
Some other text could be here  OLD STUDENT:Y(Y/N/U=UNKNOWN)
OLD STUDENT:Y(Y/N/U=UNKNOWN) Some other text could be here

注意:某些记录在OLD STUDENT:和Y之间带有“”

我想根据文本搜索过滤记录。 这个想法是隔离文本为“ STUDENT:Y”的记录

这是我到目前为止所无法使用的内容

SELECT COMMENTS
FROM
 TABLE1
WHERE
 LOWER(COMMENTS) LIKE '%student%'   
 AND LOWER(COMMENTS) NOT LIKE '%student:n%'

我该如何处理?

谢谢您的时间。

1 个答案:

答案 0 :(得分:0)

即使有有效的记录,在'%student:y%之类的WHERE LOWER(COMMENTS)中也不会返回任何结果。一些文本字段在学生 y

之间有奇怪的字符

添加另一个通配符“ _”解决了该问题。

SELECT COMMENTS
FROM
 TABLE1
WHERE
 LOWER(COMMENTS) LIKE '%student%'   
 AND LOWER(COMMENTS) NOT LIKE '%student:_n%'