表值函数
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
一些数据库支持可以生成表的函数,以供任意 SELECT 语句使用。jOOQ 为这些数据库开箱即用地支持这些函数。例如,在 SQL Server 中,以下函数生成一个包含所有书籍或仅包含按 ID 查找的一本书的 (ID, TITLE)
列的表
CREATE FUNCTION f_books (@id INTEGER) RETURNS @out_table TABLE ( id INTEGER, title VARCHAR(400) ) AS BEGIN INSERT @out_table SELECT id, title FROM book WHERE @id IS NULL OR id = @id ORDER BY id RETURN END
jOOQ 代码生成器现在将从上面生成一个 生成的表,该表可用作 SQL 函数
// Fetching all books records Result<FBooksRecord> r1 = create.selectFrom(fBooks(null)).fetch(); // Lateral joining the table-valued function to another table using CROSS APPLY: create.select(BOOK.ID, F_BOOKS.TITLE) .from(BOOK.crossApply(fBooks(BOOK.ID))) .fetch();
反馈
您对此页面有任何反馈吗? 我们很乐意听到!