我需要遍历查询中的列值。
Table1
index value
1, Nice
2, School
3, Day
Table2
index parent money
1, John, 100
2, Mary, 200
3, Mark, 300
伪代码:
FOR all values in Table1
SELECT parent, function(value)
from Table2
主要问题在于这个函数,我一次只能插入一个值。
这可以满足您的伪代码要求:
SELECT
Table2.parent,
MyFunction(Table1.value) AS function_value
FROM Table2
CROSS JOIN Table1
给定您的示例数据,此查询的结果将是:
PARENT FUNCTION_VALUE
------ ---------------------------
John value of function('Nice')
Mary value of function('Nice')
Mark value of function('Nice')
John value of function('School')
Mary value of function('School')
Mark value of function('School')
John value of function('Day')
Mary value of function('Day')
Mark value of function('Day')
这是因为查询调用了与 中的每一行 Table1
连接的每一行 Table2
的函数。如果您有 8 行Table1
和 10 行Table2
,您将获得 80 个结果 (8 x 10)。如果每个表中有 1,000 行,您将获得 100 万个结果 (1,000 x 1,000)。
如果Index
每个表中的列用于关联行,请尝试以下操作:
SELECT
Table2.parent,
MyFunction(Table1.value) AS function_value
FROM Table2
JOIN Table1 ON Table2.index = Table1.index
使用您的示例数据,此查询的输出将是:
PARENT FUNCTION_VALUE
------ ---------------------------
John value of function('Nice')
Mary value of function('School')
Mark value of function('Day')
如果这些查询都没有满足您的需求,请提供示例结果。