Received: from maia.hub.org (maia-2.hub.org [200.46.204.251]) by mail.postgresql.org (Postfix) with ESMTP id 8D0151337B49 for ; Sat, 18 Dec 2010 10:01:15 -0400 (AST) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.251]) (amavisd-maia, port 10024) with ESMTP id 93129-04 for ; Sat, 18 Dec 2010 14:01:08 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from vs137086.vserver.de (static-ip-62-75-137-86.inaddr.intergenia.de [62.75.137.86]) by mail.postgresql.org (Postfix) with ESMTP id 3F2321337B5C for ; Sat, 18 Dec 2010 10:01:06 -0400 (AST) Received: (qmail 32746 invoked from network); 18 Dec 2010 15:01:06 +0100 Received: from p57aaad25.dip.t-dialin.net (HELO a-kretschmer.de) (87.170.173.37) by static-ip-62-75-137-86.inaddr.intergenia.de with (AES256-SHA encrypted) SMTP; 18 Dec 2010 15:01:06 +0100 Received: from kretschmer by a-kretschmer.de with local (Exim 4.69) (envelope-from ) id 1PTxLM-0004Km-Pb for pgsql-sql@postgresql.org; Sat, 18 Dec 2010 15:01:04 +0100 Date: Sat, 18 Dec 2010 15:01:04 +0100 From: Andreas Kretschmer To: pgsql-sql@postgresql.org Subject: Re: Table name as a variable in SELECT query Message-ID: <20101218140104.GA16363@tux> References: <20101218074638.18205@web014.roc2.bluetie.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20101218074638.18205@web014.roc2.bluetie.com> X-OS: Debian/GNU Linux - weil ich es mir Wert bin! X-GPG-Fingerprint: EE16 3C01 7B9C 10F7 2C8B 3B86 4DB3 D9EE 7F45 84DA X-Message-Flag: "Windows" is not the answer. "Windows" is the question and the answer is "no"! X-Lugdd: Gerd Kube X-Info: My name is root. Just root. And I am licensed to kill -9 User-Agent: Mutt/1.5.18 (2008-05-17) X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-1.9 tagged_above=-5 required=5 tests=BAYES_00=-1.9 X-Spam-Level: X-Archive-Number: 201012/89 X-Sequence-Number: 34925 Andrey Fokin wrote: > Hi, > please advise is possible in SELECT query use variable as a table name? > > I would like to have for example something like: > > CREATE OR REPLACE FUNCTION test_name (tb varchar) RETURNS int AS $$ > > DECLARE > > ...... > > BEGIN > SELECT * FROM $1; > ........ > > Will be grateful for any idea about. Yes, it is possible, with dynamic sql. You have to build a string that contains your query, and then execute (it's a command in pl/pgsql) that string. Read more: http://www.postgresql.org/docs/current/interactive/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN Andreas -- Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. (Linus Torvalds) "If I was god, I would recompile penguin with --enable-fly." (unknown) Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°