Присоединиться к колонке с другой проблемой сопоставления - PullRequest
2 голосов
/ 10 мая 2009

Я использую SQL Server 2005. У меня есть две таблицы, и они используют разные параметры сортировки. Не допускается объединение столбцов из таблиц с различными параметрами сортировки, например, следующий SQL не разрешен,

select table1column1 + table2column2 from ...

Мой вопрос таков: почему конкатенация двух столбцов из разных параметров сортировки не разрешена с точки зрения структуры ядра базы данных? Я не знаю, почему сортировка повлияет на результаты, результат - просто объединение строк - должно быть достаточно простым и не зависеть от сортировки ...

спасибо заранее, George

Ответы [ 2 ]

3 голосов
/ 20 апреля 2012

Допустим, Table1Column1 имеет SQL_Latin1_General_CP1_CI_AS, а Table2Column2 имеет Latin1_General_CI_AS. Тогда вы можете сделать это:

SELECT Table1Column1 + Table2Column2 COLLATE SQL_Latin1_General_CP1_CI_AS

Надеюсь, что это решит вашу проблему:)

1 голос
/ 10 мая 2009

OK

Я думаю, что ответ прост: разработка системы для работы с Unicode намного сложнее, чем набор символов ascii. Вы должны беспокоиться не только о письмах; если у вас был арабский и французский, то как вам сделать строку a + string b, когда они читают в разных направлениях (не совместимо с kana, я думаю, это термин)?

Вы должны добавить в сопоставление новую работу - принуждение - я так понимаю, что принудительная обработка должна обеспечивать совместимость строк в разных сопоставлениях. то есть он должен позволять ядру базы данных иметь такие правила, чтобы Latin1_CI_AS действительно был совместим с Latin1_CI_AI при определенных обстоятельствах.

Если у вас есть копия SQL 99 Spec; Читайте о возможности сопоставления, которая определяет, как строки могут быть обработаны между сопоставлениями. MS пыталась определить это здесь на MSDN , хотя я не уверен, что они зашли достаточно далеко по сравнению со стандартами; может быть, sql2010 будет лучше ... Насколько мои чтения по теме пошли; он все еще работает в стандарте SQL03 - я думаю, для прямой вычислимости. В записи google books для SQL 99 нет страниц по принуждению, и я не могу найти ничего лучше, чем объяснение MSDN.

...