|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
В фоксе есть такая строка q=AT('ТП ',stroka,1) z=len(stroka)-q itog = left(z,stroka) если одной строкой то itog = left(len(stroka)-AT('ТП ',stroka,1),stroka) как эту строчку переделать на SQL SELECT left(len(stroka)-AT('ТП ',stroka,1),stroka) from date ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 08:52 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
функция выполняет какой-то бред: Код: sql 1.
ищем место первого вхождения подстроки 'ТП ' в строку Код: sql 1.
находим длину оставшейся части (вместе с подстрокой, кстати) Код: sql 1.
выбираем вобще хрен пойми что: во-первых, у функции лефт() первый аргумент - строка, второй-число. то есть так, как написано, работать не будет вообще во-вторых, даже если написать правильно, то выбирается хрен пойми что на примере: строка="12345ТП 6"; q=6; z=9-6=3; itog="123" Вам точно это надо? Может, всё-таки right? Или не надо найденную позицию отнимать от длины строки? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 11:58 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Чуть не забыл: если надо переделать на скл, то вопрос лучше задавать в подфоруме по той СУБД, на диалект которой надо перевести. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 12:00 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
извиняюсь конечно right справа все надо выбрать то что после "ТП " и до конца строки ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 12:00 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
у них могут и не знать язык фокса ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 12:01 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Scorp1978, Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 12:14 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
даже с учетом последней скобочки все равно ошибку дает ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 12:46 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Scorp1978у них могут и не знать язык фокса если запрос на фоксе, то так и пиши только добавь PADR() для дополнения пробелами до одинакового размера (иначе размером будет размер первой) и у left() аргументы перепутаны Код: sql 1.
Только по сути бред получается: например len(stroka) = 100 AT('ТП ',stroka,1) = 90 т.е. 90й символ "T", 91 "П" 100 - 90 = 10 т.е. ты берешь левые 10 потому что с 90 го "ТП " если надо обрезать по "ТП " то так Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 12:49 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Твою ошибку с left() повторил в конце :) если надо обрезать по "ТП " то так Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 12:53 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Да чтож такое ... так правильно: если надо обрезать по "ТП " то так Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 12:55 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Scorp1978, доработка Код: sql 1. 2.
Expr1000strokast_TP1тп 12тп 1201261264129тптп ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 13:24 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Scorp1978, для левого варианта Код: sql 1. 2. 3. 4.
Expr1000strokast_TPпримеч1тп 12а разрешен ли null01261264129тп129312тп3312 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 13:47 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, в фоксе нет функций InStr(), mid(), это ваши UDF-функции, поэтому надо прикладывать их код вместе с примерами где они используются. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2014, 14:22 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
instr(obgr.GroupName,'ТП ') вот эта конструкция не работает (SQL Server) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 04:57 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
запрос формируется в фоксе а обрабатывает SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 04:58 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Разместите на сервере и будет вам счастье ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 09:32 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Разместите на сервере и будет вам счастье http://www.universalthread.com/ViewPageNewDownload.aspx?ID=29527 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 09:35 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Scorp1978, в SQL Server нет Instr. А CHARINDEX('ТП ', obgr.GroupName) есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 10:21 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Scorp1978instr(obgr.GroupName,'ТП ') вот эта конструкция не работает (SQL Server) Ты сначала пойми как у тебя работает, затем поймешь что где спрашивать. Работает так: Если запрос выполняет фокс, то синтаксис запроса - синтаксис фокса. Если запрос выполняет SQL Server то синтаксис запроса - синтаксис SQL Server`а. Для фокса это просто строка символов. SQL Server какой? MSSQL, MySQL, Oracle, PostgreSQL ? У каждого свой синтаксис и он совпадает до тех пор пока тебе не потребуется выйти за рамки описанные в стандарте SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 10:27 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Dima TScorp1978instr(obgr.GroupName,'ТП ') вот эта конструкция не работает (SQL Server) Ты сначала пойми как у тебя работает, затем поймешь что где спрашивать. Работает так: Если запрос выполняет фокс, то синтаксис запроса - синтаксис фокса. Если запрос выполняет SQL Server то синтаксис запроса - синтаксис SQL Server`а. Для фокса это просто строка символов. SQL Server какой? MSSQL, MySQL, Oracle, PostgreSQL ? У каждого свой синтаксис и он совпадает до тех пор пока тебе не потребуется выйти за рамки описанные в стандарте SQL "запрос выполняет SQL Server" - да, "SQL Server какой? MSSQL" - да ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 10:43 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
CHARINDEX('ТП ', obgr.GroupName) - заработал iif - неработает, как в целом выражение будет выглядеть? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 10:47 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Scorp1978iif - неработаетвместо Код: sql 1.
можно использовать Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 10:52 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
Scorp1978"запрос выполняет SQL Server" - да, "SQL Server какой? MSSQL" - да Ну так и надо это указывать в первом посте. Еще лучше сразу спросить в форуме по MS SQL. Только фокс упоминать не надо, просто опиши решаемую задачу. Тут тоже подскажут, т.к. с фоксом многие MSSQL используют. Я не подскажу, плохо знаю тонкости MSSQL. вместо iif у MSSQL есть case ... end ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 10:54 |
|
Переделать на SQL строку из фокса
|
|||
---|---|---|---|
#18+
case when CHARINDEX('ТП ', obgr.GroupName)>0 then результат1 else '' end как результат1 записать case when CHARINDEX('ТП ', obgr.GroupName)>0 then left(len (obgr.GroupName)-CHARINDEX('ТП ',obgr.GroupName),obgr.GroupName) else '' end AS ktp вот ошибку про неверный тип пишет ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2014, 12:09 |
|
|
start [/forum/topic.php?fid=41&msg=38590284&tid=1582707]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
90ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 190ms |
0 / 0 |