此功能提供了一种在表变量中按键值对进行搜索的有效方法。
position = .SEARCH((), () [, ]) 列列表和值列表的大小必须相同,列和值与其在列表中的位置匹配。
搜索功能本身可用于其他表达式,但不能直接在 SQL 语句中使用。
返回第一个匹配记录的位置(如果没有匹配的记录,则返回 NULL)。此结果可以与其他表变量运算符(DELETE、UPDATE)结合使用。
示例代码DECLARE LT1 TABLE ("Key1"…, "Key2"…, "Val1"…);LT1 = … – see Table LT1 Initial Statepos = :LT1.SEARCH (("Key1", "Key2"), ('I', 3)); – pos = NULL (not found):LT1.INSERT(('I', 3, 'X')); –- see Table LT1 after a Single Insertpos = :LT1.SEARCH(("Key1", "Key2"), ('M', 3)); – pos = 5:LT1.DELETE(pos);val = :LT1."Val1"[:LT1.SEARCH(("Key1", "Key2"), ('E', 5))]; – val = 'V12' LT1 初始状态键值 1键值 2值 1A1V11E5V12B6V13E7V14M3V15 单个插入后的 LT1键值 1键值 2评估 1A1V11E5V12B6V13E7V14M3V15I3X 单次删除后的 LT1键值 1键值 2评估 1A1V11E5V12B6V13E7V14 I3X