Сравнение составных типов

Создал составной тип:

CREATE TYPE public.full_code AS
(
	class smallint,
	subclass smallint,
	"group" character varying(2),
	subgroup character varying(2),
	sort character varying(2),
	subsort character varying(2)
);

Имеется таблица:
CREATE TABLE public."Documents"
(
    document_id integer NOT NULL,
    document_type_id integer NOT NULL,
    document_name text NOT NULL,
    document_short_name text,
    full_code full_code,
    path_file text);

Пытаюсь сделать такой запрос:
SELECT document_name FROM public."Documents" WHERE document_type_id = 1 AND full_code = (1,1,00,00,00,00)  ORDER BY document_id

и получаю ошибку: не удалось сравнить различные типы столбцов smallint и integer, столбец записи 1. SQL-состояние: 42804

SELECT document_name FROM public."Documents" WHERE document_type_id = 1 AND full_code = (1,1,'00','00','00','00')  ORDER BY document_id то же пробовал. Результат такой же.

Запрос выполняется если делать так:

SELECT document_name 
FROM public."Documents" 
WHERE document_type_id = 1 AND (full_code).class = 1 AND (full_code).subclass = 1 AND (full_code).GROUP = '00' AND (full_code).subgroup = '00'
AND (full_code).sort = '00' AND (full_code).subsort = '00'
ORDER BY document_id 

Существует ли компактный вариант для сравнения составных типов ?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Пробуй SELECT document_name

Пробуй

SELECT document_name FROM public."Documents" WHERE document_type_id = 1 AND full_code = (1::smallint,1::smallint,'00','00','00','00')  ORDER BY document_id

Так возникает ошибка: не

Так возникает ошибка: не удалось сравнить различные типы столбцов character varying и unknown, столбец записи 3. SQL-состояние: 42804
Работает вот так :

SELECT document_name FROM PUBLIC."Documents" WHERE document_type_id = 1 AND full_code = (1::SMALLINT,1::SMALLINT,'00'::VARCHAR ,'00'::VARCHAR,'00'::VARCHAR,'00'::VARCHAR) ORDER BY document_id

Додумал сам, спасибо за помощь! Но почему работает не понимаю.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023