По моей оценке, ОП решает проблему с неправильной точки зрения.
Учитывая, что способ хранения данных известен, просто правильно составьте литерал в соответствии с правилом о том, как хранятся данные. Обрезка начальных нулей из каждого значения, хранящегося в базе данных, или преобразование каждого значения в соответствие с числовым значением для выбора - это IMO, плохая реализация.
Нам [читателям] лучше всего предполагать, что литерал будет исходить от пользовательского ввода, и, таким образом, нельзя возлагать ответственность ни на одного пользователя (пользователей) за переформатирование их ввода в соответствии с базой данных. Таким образом, вместо того, чтобы пользователь правильно составлял литеральное значение, следующим лучшим подходом для программиста является изменение литерального значения выбора, чтобы оно соответствовало способу хранения данных.
Если значение строки символов '12345' является указанным [введенным пользователем] значением, то в запросе может быть составлено выражение, которое изменяет только это буквальное значение. Это было бы сделано вместо того, чтобы составлять выражение, которое приводит столбец и/или, возможно, также приводит литерал. Например, при следующих условиях может оказаться полезным один из возможных вариантов предложения запроса WHERE [выраженный с использованием синтаксиса переменных SQL], показанный ниже:
create variable literal_replacement varchar(8) default '12345'
; /* used in place of actual literal string value as user input */
create table abc
( col1 char(08)
) /* My interpretation, as per typical, the OP offers no DDL */
;
create function col1_compare_val
( string_val varchar(08) )
returns char(08)
language sql
return right( '00000000' concat string_val, 8 )
; /* possible example of encapsulating code to reformat user input */
WHERE col1 = repeat( '0', 8 - length( literal_replacement ) ) concat literal_replacement
WHERE col1 = ( lpad( literal_replacement, 8, '0' ) )
WHERE col1 = right( '00000000' concat literal_replacement , 8 )
WHERE col1 = col1_compare_val( literal_replacement )
24.09.2016