Как выбрать по элементам в многозначном поле UniData - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь выполнить специальный поиск записей, которые содержат повторяющиеся значения в первом и втором элементах многозначного поля 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 Ответ

0 голосов
/ 05 октября 2018

Я бы использовал eval с заполнителем @RECORD с нотацией динамического массива как таковой (при условии, что STATUS находится в атрибуте 11.

Редактировать: предыдущий ответ был, как я это сделал бы в UniVerse

SELECT PERSON WITH EVAL "@RECORD<11,1>" EQ EVAL "@RECORD<11,2>"

Скрипт Вольфа - лучший способ, который работает в UniVerse и UniData.

SELECT PERSON WITH EVAL "EXTRACT(@RECORD,11,1,0)" EQ EVAL "EXTRACT(@RECORD,11,2,0)"

Удачи.

...