Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2010, 11:24   #1
tetraciclinum+
 
Регистрация: 01.11.2006
Сообщений: 7
По умолчанию Хитрый запрос SQL с маской

Господа программисты, есть база, есть таблица в ней допустим table и есть поле допустим pin типа данных int где уже находятся порядковые номера серий карт допустим. т.е. запрос select table from pin возвращает список типа 1, 2, 3 .... 98, 99, 100
а теперь вопрос, есть ли возможность составить такой хитрый запрос, чтоб возвращал уже текстовый результат 0001, 0002, 0003 .... 0099, 0100
в принципе знаю только как преобразовать тип данных, дальше познаний не хватает. Проще говоря нужно наложить маску "0000" на результат.
Дам 5 баксов кто поможет! реально.

И самое главное, использую для связи с базой компоненты unidac, может это можно сдлать в среде delphi программно? хотя это крайний вариант, и не желательный.

Последний раз редактировалось tetraciclinum+; 23.01.2010 в 11:30.
tetraciclinum+ вне форума Ответить с цитированием
Старый 23.01.2010, 20:55   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Какой тип БД используете? Кстати, а постпроцессинг результатов вас не устроит? Т.е., обработка строк
motorway вне форума Ответить с цитированием
Старый 23.01.2010, 20:56   #3
tetraciclinum+
 
Регистрация: 01.11.2006
Сообщений: 7
По умолчанию Дело встало за малым.

Уточню, база на mssql 2003
Все, на что меня хватило это сделать запрос
Код:
SELECT '0000' + CAST(pin AS VARCHAR(4))  from table
который естественно возвращает
00001
00002
...
000099
0000100
и тд
так вот задача - поправить запрос чтоб выдавал последние как бы 4 символа.
tetraciclinum+ вне форума Ответить с цитированием
Старый 23.01.2010, 21:02   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Может помочь функция SUBSTRING(x,start,length), а также RIGHT(expr,number)
SELECT RIGHT('0000' + CAST(pin AS VARCHAR(4)),4) from table
Попробуйте так

Последний раз редактировалось motorway; 23.01.2010 в 21:06.
motorway вне форума Ответить с цитированием
Старый 23.01.2010, 21:09   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
select table from pin возвращает список типа 1, 2, 3 .... 98, 99, 100
Это вообще, в принципе ничего возвращать не может, так что не нужно нас "лечить"... (ибо pin - это поле, а table - это таблица).
Почитайте про синтаксис команды SELECT для начала:
http://www.programmersforum.ru/showthread.php?t=1589
Цитата:
Сообщение от motorway Посмотреть сообщение
Скорее всего, опечатка там
Это не опечатка, это - убеждение в своей нескоренимой "правоте"...
Не прочитав ни одной книги. Не имея понятия о том, что такое сиквел...
Помните басню Крылова "Мартышка и очки" ?
Метода - та же...

Последний раз редактировалось mihali4; 23.01.2010 в 21:22.
mihali4 вне форума Ответить с цитированием
Старый 23.01.2010, 21:10   #6
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Скорее всего, опечатка там
motorway вне форума Ответить с цитированием
Старый 23.01.2010, 21:20   #7
tetraciclinum+
 
Регистрация: 01.11.2006
Сообщений: 7
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Это вообще, в принципе ничего возвращать не может, так что не нужно нас "лечить"... (ибо pin - это поле, а table - это таблица).
Почитайте про синтаксис команды SELECT для начала:
http://www.programmersforum.ru/showthread.php?t=1589
конечно опечатался!!! я к примеру все.. так как тогда еще не было реальных таблиц..
Вот реально работающий запрос!
Код:
SELECT RIGHT ('0000' + CAST(Number_C AS VARCHAR(4)),4) AS pin1  from dbo.Cards
спасибо, motorway!! кинь в личку вебмани Z кину тебе 5 баксов как и обещал!
еще раз тебе спасибо, жду номер кашелька.

Последний раз редактировалось tetraciclinum+; 23.01.2010 в 21:24. Причина: СПАСИБО
tetraciclinum+ вне форума Ответить с цитированием
Старый 23.01.2010, 22:00   #8
tetraciclinum+
 
Регистрация: 01.11.2006
Сообщений: 7
По умолчанию ТЕМА ЗАКРЫТА

Закрывай уж mihali4 тему.. человека отблагодарил. спасибо всем.
Код:
Почитайте про синтаксис команды SELECT для начала:
http://www.programmersforum.ru/showthread.php?t=1589
а вот за это и тебе спасибо!

Последний раз редактировалось tetraciclinum+; 23.01.2010 в 22:29.
tetraciclinum+ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запрос Zibiv Помощь студентам 4 09.12.2009 22:07
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
запрос sql Zibellina БД в Delphi 10 02.07.2009 17:57
SQL запрос Dux БД в Delphi 5 27.08.2008 13:36
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15