Имя: Пароль:
1C
1С v8
Предикат LIKE SQL
,
0 devk55
 
06.03.13
09:26
Как с помощью LIKE проверить что в строке только цифры?
1 Defender aka LINN
 
06.03.13
09:28
Длина известна?
2 pessok
 
06.03.13
09:31
что-то с утра в голове только регекспы крутятся на такую тему... а если в самом запросе, то присоединяюсь к (0)
3 Defender aka LINN
 
06.03.13
09:33
Ну, если известна, то просто. Если нет, то разве что что-то типа

ГДЕ
   НЕ Строка ПОДОБНО %[а-я]%

Только дофига символов перечислять придется :)
4 pessok
 
06.03.13
09:35
(3) я все равно не вдуплил в конструкцию...
5 devk55
 
06.03.13
09:35
длина не известна ))
6 Defender aka LINN
 
06.03.13
09:37
(4) Это условие на то, что строка не содержит букв. Дело портят всякие другие символы, которых чуть более, чем дофига
7 pessok
 
06.03.13
09:42
(6) сенькс. надо на досуге покурить работу ПОДОБНО
8 pessok
 
06.03.13
09:42
+(7) хотя по сути этож банальный регексп, не?
9 devk55
 
06.03.13
09:46
есть идея..вообщем задача вообще звучит так . вывести строки состоящие либо только из цифр либо только из букв латинского алфавита без учета регистра

select model,type from product where (model like '[0-9]' and model not like '[A-z]') OR (model like '[A-z]' and model not like '[0-9]')
10 dk
 
06.03.13
09:46
конвертнуть в число, обратно и сравнить
11 Sammo
 
06.03.13
09:49
(9) Тогда все просто, надо откинуть строки, в которых есть хотя бы 1 символ не символ и не цифра.
+ проверка на ненулевую длину
[^]
+len
12 Defender aka LINN
 
06.03.13
09:54
(8) К сожалению, очень примитивный :(
(9) Вернет только строки с длиной 1. Меня тут сомнения затерзали: мы вообще про 1С говорим?
13 devk55
 
06.03.13
10:01
Тогда выходит так
select model,type from product where model
except
select model,type from product where model like '%[^0-9a-Z]%'
14 devk55
 
06.03.13
10:02
но где-то есть маленький недочет
http://www.sql-ex.ru/learn_exercises.php#answer_ref

здесь такой запрос не принимается
15 devk55
 
06.03.13
10:10
пипл
16 kiruha
 
06.03.13
10:17
(0)
В SQL можно использовать регулярные выражения
http://msdn.microsoft.com/ru-ru/magazine/cc163473.aspx
17 devk55
 
06.03.13
10:18
Все решил.
select model,type from (

select model,type from product where model not like ''
except
select model,type from product where model like '%[^0-9]%') AS T

UNION ALL

select model,type from (

select model,type from product where model not like ''
except
select model,type from product where model like '%[^A-z]%') AS TT


подсказка очень помогла!
18 kiruha
 
06.03.13
10:24
%[^A-z]%

и причем здесь "только цифры" ?
19 Sammo
 
06.03.13
10:26
(18) см 9
Независимо от того, куда вы едете — это в гору и против ветра!