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

Вниз

SQL в BDE   Найти похожие ветки 

 
Aybolit   (2011-05-17 12:06) [0]

Мне нужно выбрать из таблицы значения по 2 условиям.
Запрос выглядит вот так

SELECT * FROM PRS WHERE
PRS."Код заявки" = "КЛ01"
AND PRS."Номер" = "123 "

Он ни чего не возвращает. Но!!! если делать так
SELECT * FROM PRS WHERE
PRS."Номер" = "123 "

и вот так

SELECT * FROM PRS WHERE
PRS."Код заявки" = "КЛ01"

то в обоих случаях требуемая мне запись присутствует в возвращаемых запросом записях Решил извратиться и сделать так

select *
from "1.sql" as t
where
t."Номер" = "123 "

в 1.sql записал
SELECT * FROM PRS WHERE
PRS."Код склада" = "КЛ01"

и о чудо работает! Сделал через файл потому, что не BDE не понимает такое

select *
from (
SELECT * FROM PRS WHERE
PRS."Код склада" = "КЛ01"
) as t
where
t."Номер" = "123 "

Так вот! почему так?! Все бы худо бедно сошло, но мне нужно выполнить "DELETE FROM". Запросы с двумя условиями и более, с другими столбцами работают нормально, без извращений.
Уточнения: имена столбцов написаны на кириллице и с еще одним полем являются составным ключом. Парадокс версии 4


 
Ega23 ©   (2011-05-17 12:27) [1]


> то в обоих случаях требуемая мне запись присутствует в возвращаемых
> запросом записях

Ты в этом уверен?
Дело в том, что помимо видимых символов "123" в строке могут невидимые присутствовать. Например, #5. Штук так 100. И строка "123"#5#5#5#5#5#5 совсем не равна строке "123". А строка "123" не равно строке "123 ".
Это один из факторов, почему не стоит делать ключевыми строковые поля.


 
Anatoly Podgoretsky ©   (2011-05-17 12:29) [2]

> Aybolit  (17.05.2011 12:06:00)  [0]

Наверно нет таких записей где оба поля присутствуют одновременно.
Приведи пример данных


 
Aybolit   (2011-05-17 13:03) [3]

Ega23
на счет символов. Там все нормально я запрос писал в SQL explorer"е "123" писал вручную.

Anatoly Podgoretsky
Там одна запись, просто выбирается по вум столюцам.

>  Но!!! если делать так
> SELECT * FROM PRS WHERE
> PRS."Номер" = "123 "
>
> и вот так
>
> SELECT * FROM PRS WHERE
> PRS."Код заявки" = "КЛ01"
>
> то в обоих случаях требуемая мне запись присутствует в возвращаемых
> запросом записях

так же работает


 
Aybolit   (2011-05-17 13:04) [4]

на названия полей не смотрите это я тут законспирировать хотел да забыл)


 
Aybolit   (2011-05-17 13:15) [5]

заменил равно на like работает. но в чем разница % я в лайк не добавлял


 
Anatoly Podgoretsky ©   (2011-05-17 13:25) [6]

> Aybolit  (17.05.2011 13:03:03)  [3]

Значит категорически отказываешься показывать данные записи, ну дело твое.


 
Aybolit   (2011-05-17 14:26) [7]

КОд склада Номер
  СЦ01        123

что тут показывать то

проблему решил


 
Anatoly Podgoretsky ©   (2011-05-17 14:53) [8]

Наш человек, партнер, а не халявщик.


 
Anatoly Podgoretsky ©   (2011-05-17 14:54) [9]

Кстати по приведеным данным выборка вернет 0 строк, поскольку в первом поле данные с двумя пробелами в начале.


 
Ega23 ©   (2011-05-17 15:43) [10]


> Кстати по приведеным данным выборка вернет 0 строк, поскольку
> в первом поле данные с двумя пробелами в начале.


Он проблему решил.


 
Anatoly Podgoretsky ©   (2011-05-17 16:43) [11]

> Ega23  (17.05.2011 15:43:10)  [10]

Вот я и говорю, что он партнер.


 
Aybolit   (2011-05-17 17:07) [12]

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


 
Ega23 ©   (2011-05-17 17:41) [13]


>  Странно как-то, подозреваю БДЕ.

Напрасно.


 
Германн ©   (2011-05-18 01:48) [14]


> А кто нибудь знает как делать вложенные запросы без применения
> файлов?
>

Какие?
Такие вот как у тебя в [0]?

>
> select *
> from (
> SELECT * FROM PRS WHERE
> PRS."Код склада" = "КЛ01"
> ) as t
> where
> t."Номер" = "123 "
>

Такие, имхо, никто не знает как делать. Ибо они не соответствуют формату языка SQL.
Ну а вложенные запросы соответствующие языку SQL BDE нормально поддерживает (по крайней мере на уровне LocalSQL).


> Anatoly Podgoretsky ©   (17.05.11 14:53) [8]
>
> Наш человек, партнер, а не халявщик.
>

Троешник он, а не партнер.


 
Ega23 ©   (2011-05-18 08:17) [15]


> Такие, имхо, никто не знает как делать. Ибо они не соответствуют
> формату языка SQL.


Ну ваще-то (строго говоря) - соответствуют. Но такой запрос - да, всё равно, что ковырять в носу ногой через задницу.


 
Anatoly Podgoretsky ©   (2011-05-18 08:52) [16]

> Ega23  (18.05.2011 08:17:15)  [15]

Формату LocalSQL не соответствует, его можно выполнить только через указаный
трюк. Эмуляция VIEW


 
Aybolit   (2011-05-18 09:36) [17]

Ega23 ©   (18.05.11 08:17) [15]
Я прекрасно понимаю что это "жуткие" действия
Я же так делал из за того, что БДЕ не нормально работает с пробелами в конце

Германн ©   (18.05.11 01:48) [14]

> Такие, имхо, никто не знает как делать. Ибо они не соответствуют
> формату языка SQL.
> Ну а вложенные запросы соответствующие языку SQL BDE нормально
> поддерживает (по крайней мере на уровне LocalSQL).

Как выяснилось вложенные запросы в From не поддерживаются в БДЕ(В стандарте ИСО они есть!). А в Where пожалуйста используй сколько хочешь.


 
Anatoly Podgoretsky ©   (2011-05-18 09:42) [18]

> Aybolit  (18.05.2011 09:36:17)  [17]

Нормально БДЕ работает с пробелами в конце, это просто тебе не нравится, у
тебя другие предположения о правильности, но они неправильные.


 
sniknik ©   (2011-05-18 09:54) [19]

> что БДЕ не нормально работает с пробелами в конце
также как MSSQL например если поле типа char, с varchar по другому, но вот проблема в BDE Paradox нет varchar...

другие базы/движки работают с char (из известных мне Accecc, FB, Informix, Foxpro (то что уже базой а не файлами)) также аналогично.

т.что поменяй у себя представление о "нормальности".



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

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

Наверх





Память: 0.49 MB
Время: 0.002 c
15-1425936604
Юрий
2015-03-10 00:30
2015.10.25
С днем рождения ! 10 марта 2015 вторник


2-1400840818
rumma
2014-05-23 14:26
2015.10.25
mainmenu popup


15-1426195804
Юрий
2015-03-13 00:30
2015.10.25
С днем рождения ! 13 марта 2015 пятница


15-1426455005
Юрий
2015-03-16 00:30
2015.10.25
С днем рождения ! 16 марта 2015 понедельник


2-1401110770
Black777
2014-05-26 17:26
2015.10.25
Динамически созданный WebBrowser





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский