1

我想在同一张表中选择另一列的特定值后对一列进行过滤,我尝试使用@...特殊字符后跟列名来获取该值的地址。

我的 SQL 语句如下所示:

SELECT ATTRIBUTE FROM TABLE WHERE FIELD = '@FIELDNAME';

如果我使用特定值而不是@FIELDNAME,它将正常工作,但它将是静态的,但我需要它基于所选值是动态的。

4

2 回答 2

1

创建另一个表,该表将包含 FIELDNAME 中的值列表,并为每条记录提供一个唯一的 id,然后根据您选择的新表字段名称检索值,前面带有“@...”

我不知道您是否在寻找什么,请告诉我。

于 2012-12-06T09:48:28.077 回答
0

如果不允许触发器,表中是否有任何date/time列?是否有可能有额外的列来查看新插入行的时间?

您可能必须检查输入的最后一行,将其field值保存到变量中。然后select根据变量值进行。

根据模糊的最后一行 id,您可以尝试以下方法(它不漂亮)。但同样,如果您有更准确的日期/时间。

select attribute from table 
where field = (select field from table 
where rowid =(select max(rowid) from table))
;

upate 您是否有权设置您的插入命令,如下所示:

insert into table (id, col1, col2,...) values (1,'something', 'something',...)
returning id into variable; -- you may either save field or id depending on your table

然后您可以使用它variable来选择您想要的记录。

于 2012-12-02T11:27:06.683 回答