Имя: Пароль:
1C
 
Перевод строки в число в запросе
0 Rebelx
 
14.12.09
12:35
Давайте придумаем самый простой вариант.
уже было: v8: Выразить строку как число и обратно

мой вариант:
ВЫБРАТЬ Строка, (Разряд1 + Разряд2 + Разряд3 + Разряд4 + Разряд5 + Разряд6) / Кратность КАК Число
ИЗ (
   ВЫБРАТЬ
       &Данные как Строка,
       ВЫБОР
           КОГДА &Данные ПОДОБНО "%0" ТОГДА 0
           КОГДА &Данные ПОДОБНО "%1" ТОГДА 1
           КОГДА &Данные ПОДОБНО "%2" ТОГДА 2
           КОГДА &Данные ПОДОБНО "%3" ТОГДА 3
           КОГДА &Данные ПОДОБНО "%4" ТОГДА 4
           КОГДА &Данные ПОДОБНО "%5" ТОГДА 5
           КОГДА &Данные ПОДОБНО "%6" ТОГДА 6
           КОГДА &Данные ПОДОБНО "%7" ТОГДА 7
           КОГДА &Данные ПОДОБНО "%8" ТОГДА 8
           КОГДА &Данные ПОДОБНО "%9" ТОГДА 9
           КОГДА (&Данные ПОДОБНО "%_" И &Данные ПОДОБНО "%[^0-9 ]") ТОГДА NULL
           ИНАЧЕ 0
       КОНЕЦ КАК Разряд1,
       ВЫБОР
           КОГДА &Данные ПОДОБНО "%0_" ТОГДА 0
           КОГДА &Данные ПОДОБНО "%1_" ТОГДА 10
           КОГДА &Данные ПОДОБНО "%2_" ТОГДА 20
           КОГДА &Данные ПОДОБНО "%3_" ТОГДА 30
           КОГДА &Данные ПОДОБНО "%4_" ТОГДА 40
           КОГДА &Данные ПОДОБНО "%5_" ТОГДА 50
           КОГДА &Данные ПОДОБНО "%6_" ТОГДА 60
           КОГДА &Данные ПОДОБНО "%7_" ТОГДА 70
           КОГДА &Данные ПОДОБНО "%8_" ТОГДА 80
           КОГДА &Данные ПОДОБНО "%9_" ТОГДА 90
           КОГДА (&Данные ПОДОБНО "%__" И &Данные ПОДОБНО "%[^0-9 ]_") ТОГДА NULL
           ИНАЧЕ 0
       КОНЕЦ КАК Разряд2,
       ВЫБОР
           КОГДА &Данные ПОДОБНО "%0__" ТОГДА 0
           КОГДА &Данные ПОДОБНО "%1__" ТОГДА 100
           КОГДА &Данные ПОДОБНО "%2__" ТОГДА 200
           КОГДА &Данные ПОДОБНО "%3__" ТОГДА 300
           КОГДА &Данные ПОДОБНО "%4__" ТОГДА 400
           КОГДА &Данные ПОДОБНО "%5__" ТОГДА 500
           КОГДА &Данные ПОДОБНО "%6__" ТОГДА 600
           КОГДА &Данные ПОДОБНО "%7__" ТОГДА 700
           КОГДА &Данные ПОДОБНО "%8__" ТОГДА 800
           КОГДА &Данные ПОДОБНО "%9__" ТОГДА 900
           КОГДА (&Данные ПОДОБНО "%___" И &Данные ПОДОБНО "%[^0-9 ]__") ТОГДА NULL
           ИНАЧЕ 0
       КОНЕЦ КАК Разряд3,
       ВЫБОР
           КОГДА &Данные ПОДОБНО "%0___" ТОГДА 0
           КОГДА &Данные ПОДОБНО "%1___" ТОГДА 1000
           КОГДА &Данные ПОДОБНО "%2___" ТОГДА 2000
           КОГДА &Данные ПОДОБНО "%3___" ТОГДА 3000
           КОГДА &Данные ПОДОБНО "%4___" ТОГДА 4000
           КОГДА &Данные ПОДОБНО "%5___" ТОГДА 5000
           КОГДА &Данные ПОДОБНО "%6___" ТОГДА 6000
           КОГДА &Данные ПОДОБНО "%7___" ТОГДА 7000
           КОГДА &Данные ПОДОБНО "%8___" ТОГДА 8000
           КОГДА &Данные ПОДОБНО "%9___" ТОГДА 9000
           КОГДА (&Данные ПОДОБНО "%____" И &Данные ПОДОБНО "%[^0-9 ]___") ТОГДА NULL
           ИНАЧЕ 0
       КОНЕЦ КАК Разряд4,
       ВЫБОР
           КОГДА &Данные ПОДОБНО "%0____" ТОГДА 0
           КОГДА &Данные ПОДОБНО "%1____" ТОГДА 10000
           КОГДА &Данные ПОДОБНО "%2____" ТОГДА 20000
           КОГДА &Данные ПОДОБНО "%3____" ТОГДА 30000
           КОГДА &Данные ПОДОБНО "%4____" ТОГДА 40000
           КОГДА &Данные ПОДОБНО "%5____" ТОГДА 50000
           КОГДА &Данные ПОДОБНО "%6____" ТОГДА 60000
           КОГДА &Данные ПОДОБНО "%7____" ТОГДА 70000
           КОГДА &Данные ПОДОБНО "%8____" ТОГДА 80000
           КОГДА &Данные ПОДОБНО "%9____" ТОГДА 90000
           КОГДА (&Данные ПОДОБНО "%_____" И &Данные ПОДОБНО "%[^0-9 ]____") ТОГДА NULL
           ИНАЧЕ 0
       КОНЕЦ КАК Разряд5,
       ВЫБОР
           КОГДА &Данные ПОДОБНО "%0_____" ТОГДА 000000
           КОГДА &Данные ПОДОБНО "%1_____" ТОГДА 100000
           КОГДА &Данные ПОДОБНО "%2_____" ТОГДА 200000
           КОГДА &Данные ПОДОБНО "%3_____" ТОГДА 300000
           КОГДА &Данные ПОДОБНО "%4_____" ТОГДА 400000
           КОГДА &Данные ПОДОБНО "%5_____" ТОГДА 500000
           КОГДА &Данные ПОДОБНО "%6_____" ТОГДА 600000
           КОГДА &Данные ПОДОБНО "%7_____" ТОГДА 700000
           КОГДА &Данные ПОДОБНО "%8_____" ТОГДА 800000
           КОГДА &Данные ПОДОБНО "%9_____" ТОГДА 900000
           КОГДА (&Данные ПОДОБНО "%______" И &Данные ПОДОБНО "%[^0-9 ]_____") ТОГДА NULL
           ИНАЧЕ 0
       КОНЕЦ КАК Разряд6,
       ВЫБОР
           КОГДА &Данные ПОДОБНО "[0-9][0-9][0-9][0-9][0-9][0-9]" ТОГДА 1
           КОГДА &Данные ПОДОБНО "[0-9][0-9][0-9][0-9][0-9] " ТОГДА 10
           КОГДА &Данные ПОДОБНО "[0-9][0-9][0-9][0-9]  " ТОГДА 100
           КОГДА &Данные ПОДОБНО "%[0-9][0-9][0-9]   " ТОГДА 1000
           КОГДА &Данные ПОДОБНО "%[0-9][0-9]    " ТОГДА 10000
           КОГДА &Данные ПОДОБНО "%[0-9]   " ТОГДА 100000
           ИНАЧЕ 1
       КОНЕЦ КАК Кратность
) КАК СтрокаВЧисло
1 Axel2009
 
14.12.09
12:47
этот код призван чтобы считать следующее:
1а3п6р?
2 Rebelx
 
14.12.09
12:50
(1)нет, только "123", "123   ", "   123"
3 hhhh
 
14.12.09
12:54
(2) ну вроде он "111" выдаст. Или нет?
4 Rebelx
 
14.12.09
13:10
(3) это смотря что на вход дать
5 Rebelx
 
24.12.09
11:00
6 also
 
24.12.09
11:02
(5) 19 пост там посмотри
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.