Вниз
Скачать: CL | DM;

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

 
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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.027 c
1-1089846421
Vetalich
2004-07-15 03:07
2004.08.01
Сохранение галочек


1-1090348862
Евгений ,лучше женя
2004-07-20 22:41
2004.08.01
Как в Delphi можно вставить анимированый gif-рисунок в роли банер


14-1089646989
Sheng
2004-07-12 19:43
2004.08.01
Извините за дибильный вопрос, но


1-1089892632
nastya
2004-07-15 15:57
2004.08.01
печать нескольких списков в одном отчете


1-1089965183
han
2004-07-16 12:06
2004.08.01
почуему в try...finally всегда срабатывает




   Наверх