मेरे पास एक टेबल है जैसे

CREATE TABLE table(
    name VARCHAR(100) NOT NULL,
    array INTEGER ARRAY NOT NULL
);

उदाहरण के लिए यदि मेरे पास पंक्तियाँ हैं

name: test, array: [1, 2, 3]
name: test2, array: [663, 332, 334]

मैं उस पंक्ति का चयन कैसे कर सकता हूँ जिसमें array में ३३२ हैं? सरणी किसी भी लम्बाई की हो सकती है लेकिन कभी भी शून्य नहीं होती है।

दुर्भाग्य से एचएसक्यूएलडीबी सरणियों पर ज्यादा दस्तावेज नहीं है .. मैं जावा जेडीबीसी के साथ संस्करण 2.5.1 का उपयोग कर रहा हूं।

0
Nand 23 अक्टूबर 2020, 17:55

2 जवाब

सबसे बढ़िया उत्तर

उसे हल कर लिया। पिछली विधि कॉल के कारण एक अपवाद था जो वास्तविक अपवाद को फेंकने से रोकता था।

SELECT * FROM table WHERE 332 IN ( UNNEST(array) )
0
Nand 23 अक्टूबर 2020, 19:38
SELECT 332 IN UNNEST([663, 332, 334]) AS contains_value;
-1
Sıla Eryılmaz 23 अक्टूबर 2020, 19:58