Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara mengembalikan variabel tabel dari suatu fungsi (UDF)?

Anda tidak menggunakan DECLARE saat mengembalikan variabel tabel. Tentukan tabel hasil di RETURNS klausa.

CREATE Function GetFinancials ()
RETURNS @financials TABLE
(
  [a bunch of variable declarations in here]
)
AS
BEGIN
    insert into @Financials
    [big old SELECT query here - this all works fine, and populates @Financials]

    RETURN
END

Perbarui

Bagaimana dengan mengembalikan hasil akhir dalam prosedur tersimpan?

create procedure uspGetFinanicals
as
  declare @financial table
  (
    [table definition here]
  )

  insert into @financial
  select dbo.GetFinancials()

  select * 
    from @Financials f1
    where f1.TransactionDate = (
        select MAX(TransactionDate)
        from @Financials
        where SalesDocumentItemID = f1.SalesDocumentItemID
    )

Perbarui

Coba ini. Buat variabel tabel di dalam UDF untuk menyimpan hasil pemilihan pertama, lalu masukkan hasil kueri akhir ke dalam nilai kembalian.

CREATE Function GetFinancials ()
RETURNS @financials TABLE
(
  [a bunch of variable declarations in here]
)
AS
BEGIN
    declare @table table([a bunch of variable declarations in here])
    insert into @table
    [big old SELECT query here - this all works fine, and populates @Financials]

    insert into @Financials
    select * 
      from @table f1
      where f1.TransactionDate = (
        select MAX(TransactionDate)
        from @table
        where SalesDocumentItemID = f1.SalesDocumentItemID
      )

    RETURN
END



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2005 Untuk XML Explicit - Perlu bantuan pemformatan

  2. 7645 Null atau predikat teks lengkap kosong

  3. shift kanan unsigned '>>>' Operator di sql server

  4. Konversi gagal saat mengonversi nilai varchar 'nilai yang dikembalikan saya' ke tipe data menjadi

  5. Apa itu Operator Logika SEPERTI di SQL Server - Tutorial SQL Server / TSQL Bagian 123