Проблема SQL: можно в запросе указывать маску?

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
hasuhands
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 17.11.2004 (Ср) 20:14

Проблема SQL: можно в запросе указывать маску?

Сообщение hasuhands » 22.11.2004 (Пн) 1:35

Есть база Access. Самая элементарная. Скажем: студент-стипендия.
Можно ли сделать запрос с так называемой маской то есть:
Select * from Студенты Where Стипендия=5*
// Этим я хочу вывести данные о студентах, значения поля "стипендия" которых начинается на "5".

Бред или реальность? :)

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 22.11.2004 (Пн) 3:00

Доброго времени суток!

Нет не бред. Если [стипендия] - текстового формата то проще всего:
...Where [стипендия] Like '5%'
Помоему так. Точно не могу сказать...

А ести формат денежный или числовой, то тебе придется найти функцию преобразования. Сейчас не вспомню, как они называются (для числового формата).
С уважением,
Игорь Шувалов aka Ronin

Dimitr
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 11
Зарегистрирован: 27.10.2004 (Ср) 15:48

Сообщение Dimitr » 22.11.2004 (Пн) 9:43

Если БД-Access, то какие проблемы? Идешь в ЗАПРОСЫ, создаешь в режиме конструктора запрос на выборку. Там ты должен добавить свою таблицу, потом указать поля, которые необходимо вывести. В том поле на которое тебе надо поставить условие идешь на "условие отбора", вписываешь свое условие, нажимаешь правую кнопку-режим SQL и смотришь что получилось... Или нажми (!)-запуск он тебе покажет отобранные данные.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.11.2004 (Пн) 14:21

Select * from Студенты Where Стипендия between 50 and 59
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 22.11.2004 (Пн) 14:27

GSerg, а если Стипендия=500? :)
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 22.11.2004 (Пн) 14:29

Если используется именно Access (а не .mdb-база), то можно использовать функции Str$()/Format$(), чтобы перевести число в текст. Ну а с ним как уже сказали, Format$([Стипендия]) Like '5%'
Lasciate ogni speranza, voi ch'entrate.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 22.11.2004 (Пн) 14:43

Числовые данные не принято искать по маске. Не то чтобы нельзя по определению или запретил кто, просто - не принято. Принято искать следующими способами: конкретное значение, больше, меньше, диапазон от-до, исключение диапазона (последнее встречается редко). Все. Иначе юзер, имеющий опыт работы с другими программами и набравшийся определенного user experience, будет путаться и тормозить с твоей. Не стоит изобретать квадратное колесо, если уже изобретено круглое.

hasuhands
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 17.11.2004 (Ср) 20:14

Сообщение hasuhands » 22.11.2004 (Пн) 16:42

Если используется именно Access (а не .mdb-база)

Моя ошибка. Используется именно mdb-база

snov
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 28.11.2003 (Пт) 10:12
Откуда: Челябинск

Сообщение snov » 23.11.2004 (Вт) 11:36

неа ребята.% - не прокатит! :) mdb-база - это файлик который обрабатывается ядром джет (т.е. как раз XS) а в нем прокатит *.
Таким образ нужный тебе запрос бедет выглядет так:select * From [Студенты] Where Format([Стипендия]) like '5*'

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 23.11.2004 (Вт) 12:02

Есть используется DAO, то применяется * и ?. Если используется ADO, то применяется % и _.
Lasciate ogni speranza, voi ch'entrate.

snov
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 28.11.2003 (Пт) 10:12
Откуда: Челябинск

Сообщение snov » 23.11.2004 (Вт) 12:06

to alibek
Слушай! я наверно лоханулся тут. :( просто я с XS'ом ниразу через ADO не работал (смысла нет :() неверно ты прав насчет %

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 23.11.2004 (Вт) 12:09

snov, просто меньше месяца назад я делал небольшую прогу и она как раз работала с .MDB через ADO. Так что я совершенно точно говорю, что в ADO используются % и _.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList