Прежде всего, вы можете добавить условие NOT NULL в ваш запрос:
SELECT "SampleID"."Sample ID", "SampleID"."Originating from SampleID", "SampleID"."Info" "ProjectID"."ProjectName"
FROM "SampleID" LEFT OUTER JOIN "ProjectID" ON "SampleID"."ProjectID" = "ProjectID"."ProjectID"
WHERE "SampleID"."Sample ID" = input AND "SampleID"."Originating IS NOT NULL;
Обратите внимание, что вы не можете использовать синтаксис {oj
в процедуре.
Теперь, если вы хотитетолько "Исходя из SampleID" из запроса, зачем выбирать другие столбцы? Вы также можете упростить объединение.
SELECT "SampleID"."Originating from SampleID"
FROM "SampleID" LEFT OUTER JOIN "ProjectID" USING ("ProjectID")
WHERE "SampleID"."Sample ID" = input AND "SampleID"."Originating IS NOT NULL;
Цикл FOR ... DO ... END предназначен для проверки и использования строк из SELECT. Вы можете добавить дополнительные операторы внутри цикла:
for_label: FOR
SELECT "SampleID"."Sample ID", "SampleID"."Originating from SampleID", "SampleID"."Info" "ProjectID"."ProjectName"
FROM "SampleID" LEFT OUTER JOIN "ProjectID" ON "SampleID"."ProjectID" = "ProjectID"."ProjectID"
WHERE "SampleID"."Sample ID" = input AND "SampleID"."Originating IS NOT NULL
DO
SET input= ("SampleID"."Originating from SampleID")
END FOR for_label;
См. Руководство: http://hsqldb.org/doc/2.0/guide/sqlroutines-chapt.html#src_psm_for_statement
Оператор создания процедуры должен иметь имя. Например:
CREATE PROCEDURE a()
BEGIN ATOMIC
Вы можете иметь OUTER JOIN и все другие варианты объединений в хранимых процедурах.