Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сравнение двух строк  [new]
maximIZ
Member

Откуда: Спб
Сообщений: 640
Добрый день. Нужно сравнить два текстовых значения, причем сравнение должно быть чувствительно к регистру.
Вот простой примерчик:
declare @Str1 varchar, @Str2 varchar
Set @Str1 = 'привет'
Set @Str2 = 'Привет'

IF @Str1<>@Str2 
	print 'не равно'
else
	print 'равно'


как правильно сравнить две строки чтобы вернулось "не равно" исходя из моего примера ?
8 июн 12, 04:46    [12684926]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение двух строк  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Например, так
declare @Str1 varchar, @Str2 varchar
Set @Str1 = 'привет'
Set @Str2 = 'Привет'

IF @Str1 collate Cyrillic_General_CS_AS <> @Str2 collate Cyrillic_General_CS_AS
	print 'не равно'
else
	print 'равно'
8 июн 12, 06:28    [12684948]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение двух строк  [new]
maximIZ
Member

Откуда: Спб
Сообщений: 640
спасибо большое. то что нужно
8 июн 12, 10:32    [12685814]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение двух строк  [new]
zxc13
Member

Откуда:
Сообщений: 75
tpg,
a esli :
declare @Str1 varchar, @Str2 varchar
Set @Str1 = 'привет'
Set @Str2 = 'пРИВЕТ'
13 июн 12, 14:59    [12708098]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение двух строк  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
zxc13
tpg,
a esli :
declare @Str1 varchar, @Str2 varchar
Set @Str1 = 'привет'
Set @Str2 = 'пРИВЕТ'
Если так, то - привет!

VARCHAR = VARCHAR(1)
13 июн 12, 15:04    [12708152]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение двух строк  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
iap
zxc13
tpg,
a esli :
declare @Str1 varchar, @Str2 varchar
Set @Str1 = 'привет'
Set @Str2 = 'пРИВЕТ'
Если так, то - привет!

VARCHAR = VARCHAR(1)
Кстати, во всех вышеприведённых запросах то же самое!
13 июн 12, 15:06    [12708169]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение двух строк  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
tpg
Например, так
declare @Str1 varchar, @Str2 varchar
Set @Str1 = 'привет'
Set @Str2 = 'Привет'

IF @Str1 collate Cyrillic_General_CS_AS <> @Str2 collate Cyrillic_General_CS_AS
	print 'не равно'
else
	print 'равно'


Мне кажется, для сравнения достаточно один раз COLLATE указать - в конце строки:

IF @Str1 <> @Str2 collate Cyrillic_General_CS_AS
13 июн 12, 15:07    [12708177]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение двух строк  [new]
zxc13
Member

Откуда:
Сообщений: 75
iap,
da :)
13 июн 12, 15:08    [12708183]     Ответить | Цитировать Сообщить модератору
 Re: Сравнение двух строк  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
SELECT CHARINDEX('привет','пРИВЕТ' collate Cyrillic_General_CS_AS) 
SELECT CHARINDEX('пРИВЕТ','Привет' collate Cyrillic_General_CS_AS) 
SELECT CHARINDEX('ПРИВЕТ','привет' collate Cyrillic_General_CS_AS) 
SELECT CHARINDEX('приВет','привет' collate Cyrillic_General_CS_AS) 
SELECT CHARINDEX('привет','привет' collate Cyrillic_General_CS_AS) 
SELECT CHARINDEX('ПРИВЕТ','ПРИВЕТ' collate Cyrillic_General_CS_AS) 
13 июн 12, 15:24    [12708314]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить