Учитывая таблицу с столбцом NO_TELEPHONE
данных типа VARCHAR2(20 BYTE)
, которые содержат 10- или 4-значные номера телефонов. Я должен обеспечить, чтобы последние 4 цифры каждого числа были уникальными (так что 0000001111
и 1111
не могли оба существовать).Oracle SQL, varchar2, как с номером
Я попытался это:
SELECT * from table where NO_TELEPHONE like '%1111';`
Но он нашел 0 результат, я действительно не понимаю, почему.
После нескольких попыток, я получил результаты с:
SELECT * from table where NO_TELEPHONE like '1111%';
SELECT * from table where NO_TELEPHONE like '______1111%'; (there is 6 '_')
Если у меня есть 0000001111
в таблице, и я хочу вставить 0000, так что программа будет делать:
SELECT * from table where NO_TELEPHONE like '0000%';
, и он будет соответствовать 0000001111 , не является поведением, которое я хотел
Там должен быть какой-то (невидимый?) Символ после «1111» в этих строках, следовательно, потребность в «%» после «1111» в выражениях LIKE. –
Если вы ['dump()' значения] (http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions055.htm) найдены с этими фильтрами, вы можете точно увидеть, что они действительно содержат. –
@Zeldarck Я прибрал грамматику в сообщении, надеюсь, сделаю ее более ясной. Пожалуйста, просмотрите его, и если он не соответствует вашим требованиям, вы можете нажать ссылку «отредактировано X минут назад» и отменить редактирование. – MT0