2015-09-21 4 views
1

Я пытаюсь извлечь подстроку из строки и выполнить сравнение с другой строкой и посмотреть, полностью ли это соответствует или нет. Может ли кто-то поделиться своими мыслями о том, как это сделать, используя регулярные выражения. Спасибо.Получить точное соответствие из строки в Netezza

**Input column** 
abc 
abcd 

**What I have tried?** 
LIKE '%abc%' 

**Output** 
abc 
abcd 

Но мне нужно только аЬс и отбросить абвг в этом case.How это может быть сделано с помощью LIKE. Я думаю, что LIKE не поддерживает выполнение, из-за чего мне интересно использовать regex для этой проблемы. Спасибо.

+0

Можете ли вы привести несколько примеров? Почему, по-вашему, для этого вам нужно регулярное выражение? – dnoeth

+0

Добавлено в подробности. – Teja

+0

Кажется, это просто 'col = 'abc'', или если вы хотите обрабатывать конечные пробелы как несоответствующие' col LIKE' abc'' – dnoeth

ответ

2

Решение будет зависеть от того, как вы отличаете «abc» от «abcd». Основываясь на вашем вопросе, я делаю вывод, что это будет регулярное выражение границ слов.

Netezza не поддерживает общие функции регулярного выражения в LIKE, поэтому вам нужно будет использовать что-то вроде функции regexp_extract, включая набор инструментов расширения Netezza SQL Extension.

select regexp_extract('abc abcd','\babc\b'); 

REGEXP_EXTRACT 
---------------- 
abc 
(1 row) 

Набор инструментов расширения SQL включен в Netezza, но его необходимо настроить и предоставить администратору.

+0

Я не совсем уверен, что мой ответ применим после вашего редактирования. Кажется, что COL1 LIKE 'abc' будет делать трюк для вас сейчас. – ScottMcG

+0

Он отлично работает. Спасибо Скотту :) – Teja

Смежные вопросы