Làm cách nào để khai báo biến trong hàm bảng có giá trị?Khai báo biến trong hàm có giá trị bảng
Trả lời
Có hai hương vị của hàm có giá trị bảng. Một trong đó chỉ là một câu lệnh chọn và một câu lệnh có thể có nhiều hàng hơn là một câu lệnh chọn.
này không thể có một biến:
create function Func() returns table
as
return
select 10 as ColName
Bạn phải làm như thay vì điều này:
create function Func()
returns @T table(ColName int)
as
begin
declare @Var int
set @Var = 10
insert into @T(ColName) values (@Var)
return
end
Cảm ơn, điều này rất hữu ích –
Ví dụ đầu tiên được gọi là "Chức năng bảng giá trị nội tuyến" có lợi ích về hiệu suất so với chức năng Bảng báo giá nhiều lần, cụ thể là máy chủ cơ sở dữ liệu có thể * phân phối lại * truy vấn với ITVF * inlined * vào truy vấn cha, về cơ bản trở thành một tham số 'VIEW' trong khi một MSTVF hoạt động giống như một thủ tục lưu trữ mờ (mặc dù có những ưu điểm riêng so với sprocs). Các chức năng nội tuyến nên được ưu tiên hơn MSTVF. Nếu bạn cần tính toán và lưu trữ các giá trị trung gian (chẳng hạn như kết quả của biểu thức hàm vô hướng phức tạp) thì hãy sử dụng truy vấn phụ. – Dai
Có lẽ cũng đáng nói rằng nếu kết quả của bất cứ điều gì bạn đang sử dụng để điền biến bạn muốn đặt là theo bất kỳ cách nào chung, thì bạn có thể xem xét viết một hàm riêng biệt để tạo ra nó. Điều này sẽ cho phép bạn sử dụng ITVF được mô tả bởi @Dai ở trên, với tất cả các lợi ích của chúng, trong khi vẫn chèn giá trị được tạo động vào hàm của bạn. Tôi vừa viết một hàm với sự trợ giúp của giải pháp trên (cảm ơn bạn @MikaelEriksson!), Nó chuyển một trong các tham số của nó đến một hàm trợ giúp để lưu tôi phải sử dụng biểu mẫu MSTVF. – naughtilus
- 1. Khai báo các biến không có giá trị
- 2. khai báo biến trong hàm sql
- 3. Phải khai báo biến bảng @table
- 4. Khai báo hàm C trong K & R
- 5. Có thể decltype khai báo giá trị r?
- 6. Tham gia vào một hàm bảng có giá trị
- 7. const trong khai báo hàm
- 8. SQL Tham gia hàm có giá trị bảng với bảng trong đó trường bảng là đầu vào hàm
- 9. giá trị mặc định của một biến tại thời điểm khai báo trong C# và VB?
- 10. Khi khai báo một biến trong javascript, là giá trị mặc định null?
- 11. SQL Khai báo biến
- 12. C khai báo hàm
- 13. Chèn bản ghi vào bảng có cột được khai báo bằng hàm SERIAL
- 14. Sử dụng bảng tạm thời trong các hàm có giá trị Bảng
- 15. Cách phân biệt giữa một biến không được khai báo và biến có thể được khai báo nhưng không được gán bất kỳ giá trị nào?
- 16. C: Khai báo con trỏ biến động thành hàm
- 17. Cách sửa giá trị hàm trong Bảng tính Google?
- 18. C++ * vs & trong khai báo hàm
- 19. Chọn Giá trị từ Biến Bảng/Bảng Oracle?
- 20. Khai báo biến trong tệp JavaFX CSS
- 21. Tôi có thể khai báo từ điển có mảng động dưới dạng loại giá trị không?
- 22. cách hiển thị giá trị biến trong hộp cảnh báo?
- 23. Tôi có nên khởi tạo các biến mẫu trên khai báo hoặc trong hàm tạo không?
- 24. C++ khai báo biến
- 25. Có thể khai báo giá trị hằng số tĩnh ảo trong lớp C++ không?
- 26. Bạn có nên khai báo VARCHAR với giá trị lớn hơn 255 trong MySQL không?
- 27. `* &` trong khai báo hàm có nghĩa là gì?
- 28. Có thể khai báo một hàm bên trong GSP không?
- 29. Khai báo hàm mơ hồ trong Javascript
- 30. Sử dụng -> trong khai báo hàm
inline hoặc đa tuyên bố? Giống như * MSDN * mô tả chúng? – gbn
@YogeshBhadauirya Vấn đề với câu trả lời "sử dụng công cụ tìm kiếm" vô lý là * điều này * là nơi các điểm của công cụ tìm kiếm. Loại tình huống đệ quy vô hạn. Tốt nhất là xóa trang hoặc chỉ trả lời câu hỏi. – Volvox
Câu hỏi này xứng đáng được yêu thích hơn: được mở lại và câu trả lời dưới đây được chấp nhận. Nó thực sự * là * một câu hỏi thực sự. – Askolein