Текущий архив: 2004.10.24;
Скачать: CL | DM;
ВнизКак изменить значение всех строк с пом. sql Найти похожие ветки
← →
Леха (2004-09-24 11:05) [0]Имеются таблица adres, поле - naimen
Нужно чтобы каждое значение этого поля было изменено так. Пример. СергеевСН. Нужно чтобы стало Сергеев СН. Т.е. перед двумя посл. буквами поставить пробел. Как это сделать с пом. SQL
← →
msguns (2004-09-24 11:09) [1]Какой доступ (BDE,ADO,..) ?
← →
Леха (2004-09-24 11:14) [2]ADO
← →
Леха (2004-09-24 11:14) [3]ADO. Но могу настроить и БДЕ. Это не проблема. Главное хоть какой-нибудь вариант кода на SQL
← →
Sergey13 © (2004-09-24 11:20) [4]А зачем именно SQL? "Чистый" SQL такого не могет вроде. Циклом пробежаться и все. К тому же проверочек можно наляпать, вдруг там где нить точки нет или одна буква большая.
← →
Johnmen © (2004-09-24 11:25) [5]Использовать ф-ии SUBSTRING и LEN (вроде так называются)
← →
Nikolay M. © (2004-09-24 11:26) [6]Не знаю, как в фоксе со строковыми функциями, в МС СКЛ выглядело бы примерно так:
UPDATE
tab
SET
f = LEFT(f, LEN(f) - 2) + " " + RIGHT(f, 2)
← →
sniknik © (2004-09-24 11:45) [7]> в МС СКЛ выглядело бы примерно так:
в jet (в том числе и для dBase) также.
← →
Леха (2004-09-24 11:48) [8]А как циклом сделать? Проверок не нужно ни каких. Просто в каждой строке изменить значение поля.
← →
Nikolay M. © (2004-09-24 11:53) [9]Ты уж определись: циклом тебе, "чистым" СКЛ-ем или еще как? А то мы тебе скажем, как это циклом сделать, а ты потом потребуешь, чтобы еще под любую ОС, в любой среде программирования, при выключенном компьютере и по таймеру...
← →
Леха (2004-09-24 12:01) [10]Да мне это нужно сделать один раз. Пока информация в Екселе. Сохранить могу и в dbf и в базу акцессовскую, если потребуется. В дальнейшем конечно мне нужен акцесовский формат базы, но проблема не в этом. Как провести изменения со значениями....
← →
Nikolay M. © (2004-09-24 12:05) [11]Ты не поверишь, но в Екселе тоже есть функции ДЛСТР(), ЛЕВСИМВ() и ПРАВСИМВ()! Чего ты людям мозги пудришь?
← →
sniknik © (2004-09-24 12:08) [12]> Пока информация в Екселе.
это сделать труднее чем в какойлибо другой базе, в том же аксессе.
(хотя и не сильно ;о)
)
> но проблема не в этом.
видимо она в том, что ты даже приведенный запрос выполнить не можеш?
← →
Леха (2004-09-24 12:22) [13]Запрос на SQL я действительно не знаю можно или нет так сделать. Да и SQL знаю лишь на 0,00005%. Типа select и т.д. Вот хотел и узнать можно или нет. Как?
Проблему решил но в Екселе. Теперь все верну назад в базу. Всем спасибо.
← →
сергей1 (2004-09-24 12:28) [14]типа такого (через дельфи)
form1.ADOQuery1.SQL.Text:="select key_field from table1";
form1.ADOQuery1.Open;
form1.ADOQuery1.First;
while not form1.ADOQuery1.Eof do
begin
form1.ADOQuery2.SQL.Text:="update table1 set f = "+
"LEFT(f, LEN(f) - 2) + "+quotedstr(" ") +" + RIGHT(f, 2) where key_field = "+
quotedstr(form1.ADOQuery1.fieldbyname("key_field").AsString) ;
form1.ADOQuery2.ExecSQL;
form1.ADOQuery1.Next;
end;
← →
Johnmen © (2004-09-24 12:41) [15]>сергей1 (24.09.04 12:28) [14]
Что за разврат ?
:)
← →
sniknik © (2004-09-24 12:43) [16]> сергей1 (24.09.04 12:28) [14]
> типа такого (через дельфи) ...
ужас какой. тебя наверное специально нанимают когда нужно придать программе "задумчивости" для солидности. (ну типа, идут крутые расчеты...) ;о))
← →
сергей1 (2004-09-24 12:58) [17]sorry, в натуре погнал, я сначала думал что не все строки менять надо, а когда увидел что требуются все, стер условие where в первом запросе и опубликовал.
← →
Johnmen © (2004-09-24 13:01) [18]Да даже если "...не все строки менять надо...условие where в первом запросе..." всё равно - разврат...:)
← →
сергей1 (2004-09-24 13:10) [19]согласен, надо было сразу в update условие where воткнуть, у всех есть свои белые пятна.
← →
Johnmen © (2004-09-24 13:15) [20]Главное, чтобы черных поменьше :)
Страницы: 1 вся ветка
Текущий архив: 2004.10.24;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.037 c