Я пытаюсь подготовить некоторые данные для таблицы, я пробовал на SQL Server 2008 R2 Express и BigQuery:
Моя таблица похожа на следующую:
create table location
(
city varchar(50),
country varchar(10)
)
insert into location (city) values ('Rumney, NH, US')
insert into location (city) values ('Hickory Hills, IL')
insert into location (city) values ('Patchogue, NY')
insert into location (city) values ('Wilton, NH')
insert into location (city) values ('Cedarville University, OH')
insert into location (city) values ('Shopshire, UK')
insert into location (city) values ('Dreilinden, Germany')
insert into location (city) values ('Jarjis, Tunisia')
insert into location (city) values ('Casca/RS, Brasil')
Я хочу выбрать все записи с городом в США, регулярное выражение, которое я использую:
(?!.*UK),\s(\w{2})$
Вот доказательство:
![enter image description here](https://i.stack.imgur.com/BZniq.png)
Мой запрос в MS SQL выглядит так:
SELECT *
FROM location
WHERE city LIKE '(?!.*UK),\s(\w{2})$'
Он ничего не возвращает.
Я также пытался добавить %
вокруг шаблона и PATINDEX
, но Я все еще ничего не получаю.
--- В соответствии с @ mar c, MS SQL не принимает реальное регулярное выражение.
В BigQuery:
select location, REGEXP_CONTAINS(location, "(?!.*UK),\s(\w{2})$")
from `bigquery-public-data.stackoverflow.users`
limit 10;
Я вижу ошибку в редакторе (такая же ошибка, когда я заменяю двойные кавычки на одинарные):
Чего мне здесь не хватает?
Большое спасибо, если вы можете помочь разобраться.