If you can't use a nice text editor's macro functions to generate text (which is what you should probably be doing), and absolutely have to do it entirely with something you can call from a SQL interface on Netezza, then a stored procedure is your only hope.
Here is a sample stored procedure...
CREATE OR REPLACE PROCEDURE SP_CREATE_LOOP(INTEGER, INTEGER)
RETURNS INTEGER
LANGUAGE NZPLSQL AS
BEGIN_PROC
DECLARE
pStartVal ALIAS FOR $1;
pCount ALIAS FOR $2;
vSQL varchar(30000);
BEGIN
for i in 1 .. pCount LOOP
vSQL := 'CREATE TABLE CLAIM_' || pStartVal + i-1 || ' as SELECT * from CLAIM WHERE PURCHASE_YEAR = ' || pStartVal + i-1 || ';';
EXECUTE IMMEDIATE vSQL;
END LOOP;
END;
END_PROC;
..and what it creates.
TESTDB.ADMIN(ADMIN)=> \d
List of relations
Schema | Name | Type | Owner
--------+-------+-------+-------
ADMIN | CLAIM | TABLE | ADMIN
(1 row)
TESTDB.ADMIN(ADMIN)=> exec SP_CREATE_LOOP(2000,5);
SP_CREATE_LOOP
----------------
(1 row)
TESTDB.ADMIN(ADMIN)=> \d
List of relations
Schema | Name | Type | Owner
--------+------------+-------+-------
ADMIN | CLAIM | TABLE | ADMIN
ADMIN | CLAIM_2000 | TABLE | ADMIN
ADMIN | CLAIM_2001 | TABLE | ADMIN
ADMIN | CLAIM_2002 | TABLE | ADMIN
ADMIN | CLAIM_2003 | TABLE | ADMIN
ADMIN | CLAIM_2004 | TABLE | ADMIN
(6 rows)
You can find the documentation for Stored Procedures in Netezza here.