2011-11-29 2 views
0

Ребята через несколько дней У меня есть экзамен (средний срок), поэтому я пытаюсь выполнить все возможные испытания, которые могут быть в среднесрочной перспективе, предположим, что у нас есть таблица сотрудников, номер телефона которой указан в эта форма abc.edf.ghi (все это цифры не строки), как я могу перечислить этих сотрудников, номер телефона которых содержит edf? Я не думаю, что мы можем использовать функцию подстроки, потому что это номер, я прав? Также я не могу выполнить деление на сумму, как в C++ (деление на 100, mod 100 и т. Д.), Поэтому, пожалуйста, помогите мне, извините, если мой вопрос слишком велик. Мне нужно только для практики.выберите из базы данных в соответствии с номером телефона

ответ

1

Oracle sayssubstr предназначен только для строк, но вы можете использовать substr для столбцов, которые также имеют тип NUMBER.

(Предполагается, что формат PHONENUMBERCOLUMN является abc.edf.ghi)

select * from YOURTABLE where substr(PHONENUMBERCOLUMN,5,3)='edf'

ПРИМЕЧАНИЕ: Это должно быть 'edf', не edf, если тип данных, кроме ЧИСЛА. Всегда используйте одинарные кавычки, чтобы быть в безопасности, независимо от того, является ли тип данных столбца числом или строкой (char, varchar, varchar2 и т. Д.)

0

В MySQL вы можете попробовать функцию SUBSTRING(). Если номер телефона находится в формате, который вы показываете, он должен быть varchar, а не INT.

Для Oracle используйте substr()

+0

Это оракул так похож на substr да? –

+0

@dato thats correct –

+0

и какой будет диапазон substr (phonenumber, 5,8) или я пробовал, но не работает –

1

Не делайте ошибку, думая, что номер телефона является номер. Номер телефона - это строка, которая обычно состоит в основном из цифр.

Представьте себе номер телефона, начинающийся с некоторых нулей. Если вы сохраните их как число, они будут усечены, в то время как они могут быть важными и могут иметь значение. Хранение его как строки делает его безопасным.

Кроме того, хранение его в виде строки позволяет использовать SUBSTR и другие функции, названные аналогичным образом, и делать более или менее то же самое, что должно решить вашу проблему.

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