我有一个包含4列(REFERENCEID,REFERENCENAME,REFERENCEVALUE,REFCOMMENT)的表,所有这些都是VARCHAR2数据类型。
此表有19条记录。我想创建一个变量v_param并将第16条记录的REFERENCEVALUE传递给它。
之前我遇到过类似的问题,但我的旧参数表中只有1条记录而且我做了
SELECT tbl_parameter.value INTO v_param FROM tbl_parameter
这适用于那个问题,但是老师告诉我们这是一种从参数表中分配值的效率很低的方法,他提到一旦有人在你的表中添加记录,那么你就会在分配值时遇到问题。
这就是我的问题所在,当前参数表中有19条记录,我需要选择第16条记录,第16条记录的值为:
REFERENCEID = REF16
REFERENCENAME = ABC
REFERENCEVALUE = 100
REFCOMMENT = NONE
我正在考虑做这样的事情
SELECT parameter.referencevalue INTO v_param FROM parameter
WHERE parameter.referenceid = 'REF16'
AND parameter.referencename = 'ABC';
有更有效的方法吗?
谢谢
答案 0 :(得分:1)
您编写的select语句是正确的。
SELECT parameter.referencevalue INTO v_param FROM parameter
WHERE parameter.referenceid = 'REF16'
AND parameter.referencename = 'ABC';
您只需在WHERE子句中指定足够的条件,以确保返回所需的单个记录。
例如,如果表中的主键是REFERENCEID,那么您可以使用它:
SELECT parameter.referencevalue INTO v_param FROM parameter
WHERE parameter.referenceid = 'REF16';