1

我正在尝试查找列名并将其存储为基于给定信息输入的变量。我传递给此例程的信息是一条数据,它指定要查看哪一行,另一条信息存在于该行中的某处。

我想要做的是找到第二条数据所在的列,将该列名存储在变量中并将其用于其他目的。

我意识到这段代码不起作用,但这与我正在尝试做的类似。

INPUT1 将我带到正确的行作为键,而 INPUT2 将我带到正确的列,但是如何获得 INPUT2 所在的列名?

DECLARE COLUMNNAME VARCHAR(45);
SET COLUMNAME = SELECT /*COLUMN NAME I AM LOOKING FOR*/
   FROM Table
   WHERE primary_key = INPUT1 AND /*unknown_column*/ = INPUT2;

此外,我能否在检索到 COLUMNAME 后修改我将存储在 COLUMNAME 中的信息。将 table_page1 更改为 table_page2?

如果有人可以帮助我,我将不胜感激。

4

1 回答 1

0

没有内置的方法可以做到这一点,您需要这样的UNION查询:

SELECT "col1" columname
FROM Table
WHERE primary_key = input1 AND col1 = input2
UNION
SELECT "col2"
FROM Table
WHERE primary_key = input1 AND col2 = input2
UNION
SELECT "col3"
FROM Table
WHERE primary_key = input1 AND col3 = input2
and so on

INFORMATION_SCHEMA您可以使用检查所有列来创建动态查询。

于 2013-07-24T19:17:42.510 回答