我有一个order_number和version_number的表。
我有一个要求,其中一个行字段是一个字符串分隔。例如:
order_number version_number order_1 5.3.4 order_2 ……
您可以创建UDF,因为它必须是通用的。
/* Reading in the data */ SELECT * INTO ordertable FROM (VALUES('order_1','5.3.4'), ('order_2','6.2'), ('order_3','3.5.6'), ('order_4','5.3' )) as input (order_number, version_number); /* Write Function */ CREATE OR REPLACE FUNCTION select_version(string text) RETURNS SETOF ordertable AS $$ BEGIN RETURN QUERY EXECUTE 'SELECT * FROM ordertable WHERE version_number LIKE ''' || $1 || '%'''; END $$ language plpgsql stable; SELECT * FROM select_version('5.3'); /*result*/ order_number | version_number --------------+---------------- order_1 | 5.3.4 order_4 | 5.3 (2 Zeilen) /* or */ SELECT * FROM select_version('5'); order_number | version_number --------------+---------------- order_1 | 5.3.4 order_4 | 5.3 (2 Zeilen)
希望能满足您的需求。