Как выбрать по элементам в многозначном поле UniData
Я пытаюсь выполнить специальный поиск записей, которые содержат повторяющиеся значения в первом и втором элементах многозначного поля UniData. Я надеялся, что что-то подобное сработает, но мне не повезло.
LIST PERSON WITH EVAL "STATUS[1] = STATUS[2]"
После некоторого тестирования похоже, что я наткнулся на способ чтения поля справа налево от такого количества символов. Интересно, но не полезно для того, что мне нужно.
LIST PERSON NAME EVAL "NAME[3]" COL.HDG 'Last3'
PERSON Name Last3
0001 Smith ith
Любые идеи о том, как правильно выбрать конкретные элементы поля?
Очевидно, функция EXTRACT позволит мне указать элемент, но я до сих пор не могу заставить его работать правильно.
LIST PERSON STATUS EVAL "EXTRACT(STATUS,1,2,0)" COL.HDG 'Status2'
PERSON STATUS Status2
0001 Added Processed
Processed
1 ответ
Я бы использовал eval с заполнителем @RECORD с обозначением динамического массива как таковым (при условии, что STATUS находится в атрибуте 11).
Изменить: предыдущий ответ был, как я бы сделал это в UniVerse
SELECT PERSON WITH EVAL "@RECORD<11,1>" EQ EVAL "@RECORD<11,2>"
Скрипт Wolf - лучший способ, который работает в UniVerse и UniData.
SELECT PERSON WITH EVAL "EXTRACT(@RECORD,11,1,0)" EQ EVAL "EXTRACT(@RECORD,11,2,0)"
Удачи.