Member 13992723 Ответов: 1

У меня есть трудности с переводом запроса с SQL на postgresql


Всем привет. У меня есть трудности с переводом запроса с sql на postgresql. Запрос в sql-это:

SELECT Stuff((SELECT N', ' + reference_number + '_' + report_name
			                    FROM tbl_report_definition
			                    WHERE report_definition_id in
				                    (SELECT report_definition_id
				                    FROM tbl_report_definition_columns
				                    WHERE report_header_id = rh.id)
		                    FOR XML PATH('') ,TYPE)
		                    .value('text()[1]','nvarchar(max)'),1,2,N'')

Я исследовал и обнаружил, что postgresql-эквивалент sql "stuff" - это
overlay
Итак, мой postgre sql-запрос таков:

SELECT overlay((SELECT N', ' + reference_number + '_' + report_name
			                    FROM tbl_report_definition
			                    WHERE report_definition_id in
				                    (SELECT report_definition_id
				                    FROM tbl_report_definition_columns
				                    WHERE report_header_id = rh.id)
		                    FOR XML PATH('') ,TYPE)
		                    .value('text()[1]','nvarchar(max)') placing N'' from 1 for 2)


Но когда я выполнил этот запрос в pgadmin я получил следующее сообщение об ошибке:

syntax error at or near "XML" LINE 15: FOR XML PATH('') ,TYPE)


Не могли бы вы помочь мне перевести мой sql-запрос в postgre правильно?

Что я уже пробовал:

Я попытался найти, как перевести этот кодовый блок "
FOR XML PATH('') ,TYPE
- от sql к postgre sql, но безуспешно.

1 Ответов

Рейтинг:
2

#realJSOP

Простой поиск в google привел к этому:

SELECT table_to_xml('users', true, false, '');

--Or

SELECT query_to_xml('SELECT * FROM users', true, false, '');


Я оставляю вас с вашим безумным google skillz, если этого недостаточно, чтобы начать работу.