Пост-ГРЭС - Функционировать для возврата пересечения 2 МАССИВОВ?

System.out.println("the program is outputing this");
if (ListBookMark.size() > 0) {
    for (SomeObject bs : DictionaryVar.values()) {
        System.out.println("working now");
        if (jTable1.getModel().getColumnName(1).equalsIgnoreCase(bs.GetName()) == false) {
            ((DefaultTableModel) jTable1.getModel()).addRow(new Object[]{false, bs.GetName(), "", "", 0, ""});
        }

    }
}else {
 System.out.println("bs size = " +  (ListBookMark.size() ));
}
32
задан Jhonny D. Cano -Leftware- 17 April 2009 в 18:32
поделиться

3 ответа

Попробуйте & вместо &&

См. Документы PostgreSQL для более.

22
ответ дан 27 November 2019 в 19:58
поделиться
SELECT  ARRAY
        (
        SELECT  a1[s]
        FROM    generate_series(array_lower(a1, 1), array_upper(a1, 1)) s
        INTERSECT
        SELECT  a2[s]
        FROM    generate_series(array_lower(a2, 1), array_upper(a2, 1)) s
        )
FROM    (
        SELECT  array['two', 'four', 'six'] AS a1, array['four', 'six', 'eight'] AS a2
        ) q

Работает и с нецелыми массивами.

4
ответ дан 27 November 2019 в 19:58
поделиться

Вы можете использовать эту функцию:

CREATE OR REPLACE FUNCTION intersection(anyarray, anyarray) RETURNS anyarray as $$
SELECT ARRAY(
    SELECT $1[i]
    FROM generate_series( array_lower($1, 1), array_upper($1, 1) ) i
    WHERE ARRAY[$1[i]] && $2
);
$$ language sql;

Она должна работать с любым видом массива, и вы можете использовать его следующим образом:

SELECT intersection('{4,2,6}'::INT4[], '{2,3,4}'::INT4[]);
4
ответ дан 27 November 2019 в 19:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: