我想用jOOQ構建和執行這樣的查詢。如何使用jOOQ創建SELECT EXISTS(子查詢)?
SELECT EXISTS(subquery)
對於爲例:
SELECT EXISTS(SELECT 1 FROM icona_etiqueta WHERE pvp IS NULL AND unitat_venda = 'GRAMS')
我該怎麼辦呢?可以做到嗎?
我想用jOOQ構建和執行這樣的查詢。如何使用jOOQ創建SELECT EXISTS(子查詢)?
SELECT EXISTS(subquery)
對於爲例:
SELECT EXISTS(SELECT 1 FROM icona_etiqueta WHERE pvp IS NULL AND unitat_venda = 'GRAMS')
我該怎麼辦呢?可以做到嗎?
找到它。我正在尋找一個selectExists
方法,並被謂詞構造函數弄糊塗了。
有一個更方便fetchExists(subquery)
。
我的具體實例解決這樣的:
create.fetchExists(
create.selectOne()
.from(ICONA_ETIQUETA)
.where(ICONA_ETIQUETA.PVP.isNull(),
ICONA_ETIQUETA.UNITAT_VENDA.eq('GRAMS'))
);
直接返回一個布爾值。
Your own solution是您想要做的最方便的方法。一個更普遍的方法是使用:
create.select(field(exists(...)))
如果你換一個Condition
(創建由DSL.exists(Select)
)在Field
使用DSL.field(Condition)
。
從第3.9節開始,Field<Boolean>
和Condition
不是相同的類型。這可能會在未來改變#3867。
用戶知道如何編寫SQL的另一種情況,但是第三方軟件阻礙了它? –