表值函数
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
一些数据库支持可以生成表的函数,以供任意 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();
反馈
您对此页面有任何反馈吗? 我们很乐意听到!