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

Откуда:
Сообщений: 24
MSSQL2008,
Есть таблица, которая содержит поле типа nvarchar, причём в этой таблице там хранятся русские, английские и китайские значения... типа таких:

Гость64
Гость64
Gorb1
Gorb1
合合67u
合合67u
合合67u

Проблема в том, что когда делаю select , в котором пытаюсь данные строки сложить, вылезает ошибка:

Сообщение 451, уровень 16, состояние 1, строка 1
Не удалось разрешить конфликт параметров сортировки для столбца 4 в инструкции SELECT.

Собственно запрос:
select
	ServerId,
	PersonId,
	DDate,
	Title + N' c ' + Nick + N'(' + cast(SellerID as nvarchar(20)) + N')' as SType,
	SAction,
	SDetail	 
from 
	_vTradeRecords

где Nick - это и есть то самое поле
15 окт 09, 10:21    [7788891]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при конкатенации строк  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
DDL таблицы приведите.
15 окт 09, 10:25    [7788912]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при конкатенации строк  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Какие коллешены у полей Title, Nick, SellerID? Какие у самой бд?
15 окт 09, 10:27    [7788923]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при конкатенации строк  [new]
Влом регистрироваться
Guest
tpg,

и default'ный collation базы.
15 окт 09, 10:27    [7788928]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при конкатенации строк  [new]
Влом регистрироваться
Guest
pkarklin,

очевидно, что SellerID не имеет collation, ибо это либо INT/BIGINT, либо UID
15 окт 09, 10:28    [7788939]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при конкатенации строк  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Влом регистрироваться
tpg,

и default'ный collation базы.
Я и не сомневаюсь. И всё же...
15 окт 09, 10:31    [7788965]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при конкатенации строк  [new]
msystem
Member

Откуда:
Сообщений: 24
tpg,

Что касается DDL, то показать его полностью не могу - _vTradeRecords это вьюха, которая запросом собирается

Nick - nvarchar(100), Cyrillic_General, (словарная сортировка, с поддержкой диакритических знаков)
SellerID - обычный int
Title -  nvarchar(100), latin1_General, (словарная сортировка, с поддержкой диакритических знаков)

Можно ли как-то явно задать сортировку в запросе, без изменения структуры таблиц?
15 окт 09, 10:57    [7789252]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при конкатенации строк  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
msystem
Можно ли как-то явно задать сортировку в запросе, без изменения структуры таблиц?


https://www.sql.ru/articles/mssql/2005/032404ResolveCollationConflict.shtml
15 окт 09, 11:06    [7789339]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при конкатенации строк  [new]
msystem
Member

Откуда:
Сообщений: 24
Knyazev Alexey,

Спасибо, помогло

select
	ServerId,
	PersonId,
	DDate,
	Title collate Cyrillic_General_CI_AS + N' c ' + cast(Nick as nvarchar(100)) + N'(' + cast(SellerID as nvarchar(20)) + N')' as SType,
	SAction,
	SDetail	 
from 
	_vTradeRecords

15 окт 09, 11:14    [7789408]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при конкатенации строк  [new]
Влом регистрироваться
Guest
msystem

Что касается DDL, то показать его полностью не могу - _vTradeRecords это вьюха, которая запросом собирается


SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE ...
15 окт 09, 11:25    [7789514]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при конкатенации строк  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
msystem
tpg,

Что касается DDL, то показать его полностью не могу - _vTradeRecords это вьюха, которая запросом собирается

Nick - nvarchar(100), Cyrillic_General, (словарная сортировка, с поддержкой диакритических знаков)
SellerID - обычный int
Title -  nvarchar(100), latin1_General, (словарная сортировка, с поддержкой диакритических знаков)

Можно ли как-то явно задать сортировку в запросе, без изменения структуры таблиц?
Ну вот, а говорили дефолтный, дефолтный...
Два разных не могут быть одновременно дефолтными.
15 окт 09, 11:48    [7789767]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить