我们有一张表
table01 (rollno, etcs100, etcs101, etcs102)
table02 (serialno, subjectcode)
我想从table02
中选择一个值(即subjectcode =“etcs100”)
并匹配table01
列名称中的此值,并将此列值更新为1.
UPDATE TABLE01
SET (SELECT SUBJECTCODE
FROM table02 WHERE SERIALNUMBER = '1')
= (SELECT SUBJECTCODE FROM table02
WHERE SERIALNUMBER = '1') + 1
WHERE rollno = 1
我们正在寻找这样的查询。 我们正在使用oracle数据库
答案 0 :(得分:0)
您需要为此使用动态SQL。语法因数据库风格而异。以下是Oracle的语法。
declare
l_col_name varchar2(30);
begin
SELECT SUBJECTCODE
into l_col_name
FROM table02
WHERE SERIALNUMBER = '1';
execute immediate
'UPDATE TABLE01 SET '|| l_col_name || ' = '
|| l_col_name || ' + 1 WHERE rollno = 1'
;
end;
MySQL提供与预处理语句类似的功能。 Find out more