Как найти символ в N-й позиции строки


Например,

create table tblvarchar 
(
lngvarchar character varying(500)
)

И строка выборки

insert into tblvarchar (lngvarchar) values ('110010000001111101010011110000001101011000001')
  • Как узнать character (в этом случае (0 или 1)) в поле lngvarchar, используя позицию character ?
  • например, character в 15-й позиции lngvarchar является 1

На PostgreSQL 9.2.4

2 3

2 ответа:

Вы можете сделать это (начальная позиция 15, пример длины 1):

SELECT SUBSTRING(lngvarchar,15,1) FROM tblvarchar;

СКРИПКА SQL

Если ваши данные содержат только 0 и 1, Вы можете использовать битовые строки вместо character varying (bit varying в вашем случае).

Вы можете использовать функцию get_bit() для получения одного бита (но эта функция использует индексацию на основе нуля); также substring() работает и с битовыми строками (но даст вам результаты text).

SQLFiddle