2015-03-21 2 views
1

Мы переносим данные из одной базы данных Sql-server в другую. Существует один столбец типа nvarchar, который может содержать арабские символы. Мне нужно было отделить английские имена от арабских и поместить их в свою колонку. Что-то вроде:Фильтр по арабским струнам

insert NewTable(EnglishDescription) 
select Description from OldTable where Description does not contain 'Arabic characters' 

insert NewTable(ArabicDescription) 
select Description from OldTable where Description contains 'Arabic characters' 

Я видел подобные сценарии здесь SO, но ни один из них не показывает, как добиться того, что в sql-server

+0

Зачем вам нужно отделять арабский от других записей? Вы действительно уверены, что это то, что вы на самом деле хотите? – Deduplicator

+0

@Deduplicator Новое приложение имеет оба языка. Каждый пользователь может увидеть свое собственное описание, основанное на его языке. Да, я в этом уверен. – Haz

+0

Это довольно несовершенное решение. Пока вы можете проверить, присутствует ли какой-либо символ в строке в арабском скрипте (хотя я точно не знаю), это на самом деле не означает, что человек хочет арабское описание. Или понимает их. Также держится наоборот. – Deduplicator

ответ

3

Если вы хотите, чтобы получить строки, которые содержат арабские символы, то вот как вы делаете это:

insert NewTable(ArabicDescription) 
select Description from OldTable where Description like N'%[أ-ي]%' 

Вы можете получить те латыни, добавив not перед like.

Однако при запросе на арабский символ, который будет вызывать строки, которые могут содержать как латинские & Арабский.

+0

Это именно то, что мне нужно. Я отредактировал свой вопрос. Спасибо. – Haz

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