Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];

Вниз

Как включить/выключить регистровую зависимость в запросе?   Найти похожие ветки 

 
big_bugzy   (2004-07-06 05:26) [0]

ситуация следующая: есть две таблицы, соедененные по уникальному значению.
Это значение символьное. Символы могут быть самые разные.
Запрос типа
Select *
From Table1 Inner Join Table2 on Table1.Un_Id = Table2.Un_Id
работает не корректно, потому что
к примеру значение Un_Id = "Mt" и Un_Id="MT" воспринимаются одинаково, т.е. не учитывается регистр. Как заставить учитываться регистр букв?


 
Ozone ©   (2004-07-06 05:50) [1]


SELECT UPPER(T1.Un_Id), UPPER(T2.Un_Id)
FROM T1 INNER JOIN T2 ON T1.Un_Id = T2.Un_Id


 
big_bugzy   (2004-07-06 05:54) [2]

2Ozone ©  
нужно как раз наоборот
регистр нужно учитывать с UPPER ом регистр вообще не учтется


 
Ozone ©   (2004-07-06 06:08) [3]

Извини, прочитал не внимательно.
НО, SQL изначально учитывает регистр, ИМХО.


 
big_bugzy   (2004-07-06 06:13) [4]

несовсем, при установке можно настроить SQL чтобы он учитывал или не учитывал регистр. В мойм случае сервер регистр не учитывает, из-за этого возникла проблема...


 
Ozone ©   (2004-07-06 06:14) [5]

Тады не знаю... мож мастера чего скажут.


 
bushmen ©   (2004-07-06 09:12) [6]

> big_bugzy   (06.07.04 06:13) [4]

Поменяй коллейшн в таблице на этих ключевых полях на CS


 
Ega23 ©   (2004-07-06 09:36) [7]

Поменяй коллейшн в таблице на этих ключевых полях на CS

Это непосредственно в запросе можно сделать.


 
Курдль ©   (2004-07-06 09:51) [8]


> ситуация следующая: есть две таблицы, соедененные по уникальному
> значению.
> Это значение символьное. Символы могут быть самые разные.

И кому ТАКОЕ пришло в голову?
Пусть извинят меня завсегдатаи, но я снова попрошу перевести фразу на язык СУБД.
1. "Есть таблицы, имеющие отношение между собой по символьному внешнему ключу"
2. "Есть запрос, в котором требуется выбрать данные из 2-х таблиц методом соединения по уникальному полю.

Так вот. В том и другом случае Вам надо полагаться на принцип уникальности символьного поля, принятого СУБД. Если СУБД не обращает внимания на регистр, значит и запрос должен не учитывать.
Но мой совет - старайтесь избегать символьных ключей и индексов.


 
bushmen ©   (2004-07-06 10:01) [9]

> Это непосредственно в запросе можно сделать

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


 
Ega23 ©   (2004-07-06 10:26) [10]

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

Тоже верно. А вообще-то Курдль прав на все 100.


 
bushmen ©   (2004-07-06 10:28) [11]

> А вообще-то Курдль прав на все 100

Это точно


 
sniknik ©   (2004-07-06 10:32) [12]

проверь
Select *
From Table1 Inner Join Table2 on CAST(Table1.Un_Id AS Binary(2)) = CAST(Table2.Un_Id  AS Binary(2))


 
big_bugzy   (2004-07-06 11:43) [13]

Всем спасибо, сори за задержку, базу с символьными идентификаторами не я придумал, я ее только перегоняю в другую базу. Вариант с binary не проходит, оно все равно группируется так же как и раньше, т.е. без учета регистра символов. С колейтами пока не пробовал, убегаю уже... Где их изменять тоже не нашел...
Всем спасибо


 
sniknik ©   (2004-07-06 12:00) [14]

> оно все равно группируется так же как и раньше
ну вообщето не должно, т.к. "Mt" = 4D 74 а "MT" = 4D 54


 
Fay ©   (2004-07-06 12:24) [15]

2big_bugzy   (06.07.04 05:26)
Верный ответ в [4]. Не извращайся.
Удачи.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.033 c
14-1089348704
MBo
2004-07-09 08:51
2004.08.01
Пятничные задачки. Много ;)


3-1089282540
3APA3A
2004-07-08 14:29
2004.08.01
COMMIT в ХП


1-1090014902
DeOptric2
2004-07-17 01:55
2004.08.01
Цвет


6-1086263642
Term
2004-06-03 15:54
2004.08.01
Как определить имя рабочей группы т.е. локальные настройки???


4-1087750974
Damager
2004-06-20 21:02
2004.08.01
Открыть каталог в проводнике





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский