2013-12-09 2 views
1

В дб у меня есть строки как такКак получить результаты с только цифры и слэш

324/23/235 -> all numbers and slashes 

и

fsg/23/234 -> NOT all numbers and slashes 

Теперь, когда я в силу Desgin в настоящее время критерии для данной колонки

как я могу добавить в поиск только строки, которые имеют все числа и косые черты?

ответ

2

В представлении дизайна я использовал это как критерий для текстового столбца.

Not Like "*[!0-9/]*" 

Переход от проектирования до SQL View отображается это утверждение.

SELECT tblFoo.some_text 
FROM tblFoo 
WHERE (((tblFoo.some_text) Not Like "*[!0-9/]*")); 

Чтобы понять, что Like шаблон, сначала рассмотрим этот ...

"*[0-9]*" 

Это соответствует любому символу, который входит в диапазон символов от 0 до 9. Для того, чтобы соответствовать либо эти цифры или слэш, включает косую черту в структуре диапазона ...

"*[0-9/]*" 

Однако, это не те символы, которые вы будете обеспокоены. Вы хотите нацелить символы, отличные от тех, которые включены в диапазон. Таким образом, вы можете «отменить» диапазон, используя ! в первой позиции.

"*[!0-9/]*" 

Итак Like "*[!0-9/]*" даст вам строки, в которых текстовое поле Строка значения содержать любой символ, отличный от 0 до 9 или /. Но вы хотите, чтобы противоположность --- те, которые не содержат никакого другого символа --- поэтому включите Not, чтобы сделать окончательные критерии Not Like "*[!0-9/]*"

+0

Отличное объяснение! Я думаю, что могу использовать это и в другом случае .., чтобы найти только строки, содержащие буквы и цифры. –

1

Функция «Заменить» будет удалять косые черты и заменять их и пустым пространством. IsNumeric вернет Boolean = True, если остальные символы могут быть успешно преобразованы в число.

Select * from [TableWithStrings] as t 
where IsNumeric(Replace(t.[FieldWithTheseStrings], "/", ""))=True; 

Эти функции могут использоваться как в коде, так и в вашем представлении.

+0

Я не уверен, где это положить .. Поскольку я нахожусь в представлении Desgin для Запрос в доступе. Я надеялся, что есть способ добавить что-то к критериям для этого поля. –

+0

'IsNumeric (" - 2.3 ")' возвращает 'True', а также' IsNumeric ("2e2") '. Но OP указал, что его интересуют только '0-9' и'/'. – HansUp

Смежные вопросы