Ответ 1
Сводка будет установлена на регистр, нечувствительный к регистру.
Вам нужно сделать что-то вроде этого
Select distinct col1 COLLATE sql_latin1_general_cp1_cs_as
From dbo.myTable
У меня проблема, что MSSQL Server 2000 должен выбрать некоторые отдельные значения из таблицы (конкретный столбец относится к типу nvarchar). Существуют иногда одни и те же значения, но в разных случаях, например (псевдокод):
SELECT DISTINCT * FROM ("A", "a", "b", "B")
вернет
A,b
Но я действительно хочу (и ожидаю)
A,a,b,B
потому что на самом деле это разные значения.
Как решить эту проблему?
Сводка будет установлена на регистр, нечувствительный к регистру.
Вам нужно сделать что-то вроде этого
Select distinct col1 COLLATE sql_latin1_general_cp1_cs_as
From dbo.myTable
Используйте BINARY для этой операции. Вставьте столбец в двоичный файл следующим образом:
SELECT DISTINCT BINARY(column1) from table1;
Просто измените column1
и table1
в соответствии с вашей схемой.
Полный пример, который работает для меня в MySQL 5.7, должен работать для других:
SELECT DISTINCT BINARY(gateway) from transactions;
Ура!
SELECT DISTINCT
CasedTheColumn
FROM
(
SELECT TheColumn COLLATE LATIN1_GENERAL_BIN AS CasedTheColumn
FROM myTAble
)FOO
WHERE
CasedTheColumn IN ('A', 'a'...)
maby это поможет: http://msdn.microsoft.com/en-us/library/ms187582.aspx
Попробуйте установить сопоставление рассматриваемого столбца на что-то двоичное, например. utf8-bin. Вы можете либо сделать это в самом выражении SELECT
, либо напрямую изменить структуру вашей таблицы (что означает, что он не должен отображать сортировка каждый раз, когда запрос выполняется, поскольку он будет хранить его правильно внутренне).