Я испытываю очень странное поведение при объединении двух столбцов nvarchar (20) с '-' в nvarchar (100), в sql server 2005. Вот упрощенная Обновление отчета:sql server 2005 concatenate nvarchar, результаты иногда в странных символах
UPDATE tbl3
SET tbl3.col1 = t1.col1+' - '+t2.col1
FROM
tbl1 AS t1
INNER JOIN
tbl2 AS t2 ON 1=1
INNER JOIN
tbl3 AS t3
ON
t3.col2 = t1.col2+t2.col2
;
Ниже приведены результаты для некоторых записей (одиночные кавычки не в столбцах, просто представляющие именно там, где она начинается и заканчивается):
tbl1.col1: «Saídos»
tbl2.col1.1stRow: 'Salário rendim.mens.'
tbl2.col1.2ndRow: 'Assalariados Por Mes'
первое обновление:
tbl3.col1.1stRow: 'Саларио rendim.mens.
tbl3.col1.2ndRow: 'Saídos - Assalariados Por Mes'
второй upate:
tbl3.col1.1stRow: 'Saídos - Salário rendim. MENS'
tbl3.col1.2ndRow: 'Saídos - Assalariados Por mê'
3nd upate:
tbl3.col1.1stRow: 'Saídos - Salário rendim.mens'
tbl3.col1.2ndRow: 'Saídos - Assalariados Por mê '
четвёртой upate:
tbl3.col1.1stRow: 'Saídos - Salário rendim.mens.'
tbl3.col1.2ndRow: 'Saídos - Assalariados POR' mê
Как уже говорилось, tbl1.col1 и tbl2.col1 являются NVARCHAR (20), и tbl3.col1 является NVARCHAR (100) Все 3 столбца имеют, в дизайнере таблицы, Collation set to и database Collation задано значение Latin1_General_CI_AS.
Любая помощь или устранение неполадок наиболее приветствуется, спасибо!
Я не знаю, что вызывает это, но используйте символы символов Юникода, если можно. Проблемы, подобные этому, просто уходят. – usr
, как вы предположили, я изменил значение nvarchar во всех таблицах, все равно получаю такое же странное поведение ... – RMiranda
Тогда единственная причина, по которой я могу думать, это «удивительные» данные (хотя я не могу придумать, как это могло произойти). Попробуйте создать исполняемый репо на sqlfiddle.com, чтобы мы могли играть с ним. Я просто попробовал «SELECT N'Salário rendim.mens». + N'Saídos - Assalariados por mês'', и он отлично работает. – usr