Biểu kèo bóng đá hom nay giá trị được sử dụng trong nhiều ngữ cảnh khác nhau, chẳng hạn như trong danh sách mục tiêu củaChọn
Lệnh, như kèo bóng đá hom nay giá trị cột mới trongChèn
hoặcCập nhật
hoặc trong các điều kiện tìm kiếm trong một số lệnh. Kết quả của biểu kèo bóng đá hom nay giá trị đôi khi được gọi làvô hướng, để phân biệt nó với kết quả của biểu kèo bóng đá hom nay bảng (là một bảng). Do đó, các biểu kèo bóng đá hom nay giá trị cũng được gọi làBiểu kèo bóng đá hom nay vô hướng(hoặc thậm chí đơn giản làBiểu kèo bóng đá hom nay). Cú pháp biểu kèo bóng đá hom nay cho phép tính toán các giá trị từ các phần nguyên thủy bằng số học, logic, tập hợp và các hoạt động khác.
Một biểu kèo bóng đá hom nay giá trị là một trong những điều sau:
Một giá trị không đổi hoặc nghĩa đen
tham chiếu cột
Tham chiếu tham số vị trí, trong phần thân của định nghĩa hàm hoặc câu lệnh đã chuẩn bị
Biểu kèo bóng đá hom nay được đăng ký
Biểu kèo bóng đá hom nay lựa chọn trường
Một người vận hành gọi
Một chức năng gọi
Một biểu kèo bóng đá hom nay tổng hợp
Một chức năng cửa sổ gọi
Một loại đúc
Biểu kèo bóng đá hom nay đối chiếu
14945_14964
Trình xây dựng mảng
Trình xây dựng hàng
Một biểu kèo bóng đá hom nay giá trị khác trong ngoặc đơn (được sử dụng để nhóm biểu hiện phụ và ghi đè lên ưu tiên)
Ngoài danh sách này, có một số cấu trúc có thể được phân loại là một biểu kèo bóng đá hom nay nhưng không tuân theo bất kỳ quy tắc cú pháp chung nào. Chúng thường có ngữ nghĩa của một hàm hoặc toán tử và được giải thích ở vị trí thích hợp trongChương 9. Một ví dụ làlà null
mệnh đề.
Chúng ta đã thảo luận về hằng số trongPhần 4.1.2. kèo bóng đá hom nay phần sau thảo luận về kèo bóng đá hom nay tùy chọn còn lại.
Một cột có thể được tham chiếu ở dạng:
Tương quan
.CộtName
Tương quan
là tên của bảng (có thể đủ điều kiện với tên lược đồ) hoặc bí danh cho một bảng được xác định bằng phương tiệntừ
mệnh đề. Tên tương quan và dấu chấm phân tách có thể được bỏ qua nếu tên cột là duy nhất trên tất cả kèo bóng đá hom nay bảng được sử dụng trong truy vấn hiện tại.Chương 7.)
Tham chiếu tham số vị trí được sử dụng để chỉ ra một giá trị được cung cấp bên ngoài cho câu lệnh SQL. kèo bóng đá hom nay tham số được sử dụng trong kèo bóng đá hom nay định nghĩa chức năng SQL và trong kèo bóng đá hom nay truy vấn đã chuẩn bị.
$Số
Ví dụ: xem xét định nghĩa của một hàm,Dept
, như:
Tạo chức năng (văn bản) Trả về Dept
ở đây$ 1
Tài liệu tham khảo giá trị của đối số hàm đầu tiên bất cứ khi nào hàm được gọi.
Nếu một biểu kèo bóng đá hom nay mang lại giá trị của một loại mảng, thì một phần tử cụ thể của giá trị mảng có thể được trích xuất bằng cách viết
Biểu kèo bóng đá hom nay
[Đăng ký
]
hoặc nhiều phần tử liền kề (anHồiSlice ArrayHồi19069_1940
Biểu kèo bóng đá hom nay
[Lower_SubScript
:Upper_subscript
]
(ở đây, dấu ngoặc[]
có nghĩa là xuất hiện theo nghĩa đen.) MỗiĐăng ký
Bản thân nó là một biểu kèo bóng đá hom nay, sẽ được làm tròn đến giá trị số nguyên gần nhất.
Nói chung là mảngBiểu kèo bóng đá hom nay
phải được dấu ngoặc đơn, nhưng dấu ngoặc đơn có thể được bỏ qua khi biểu kèo bóng đá hom nay được đăng ký chỉ là một tham chiếu cột hoặc tham số vị trí. Ngoài ra, nhiều chỉ số có thể được kết hợp khi mảng ban đầu là đa chiều.
MyTable.ArrayColumn [4]
dấu ngoặc đơn trong ví dụ cuối cùng được yêu cầu. Nhìn thấyPhần 8.15Để biết thêm về mảng.
Nếu biểu kèo bóng đá hom nay mang lại giá trị của loại tổng hợp (loại hàng), thì một trường cụ thể của hàng có thể được trích xuất bằng cách viết
Biểu kèo bóng đá hom nay
.FieldName
nói chung là hàngBiểu kèo bóng đá hom nay
20849_2413
2448_2146
(Do đó, tham chiếu cột đủ điều kiện thực sự chỉ là một trường hợp đặc biệt của cú pháp lựa chọn trường.) Một trường hợp đặc biệt quan trọng là trích xuất một trường từ cột bảng thuộc loại tổng hợp:
(Compositecol) .Somefield
dấu ngoặc đơn được yêu cầu ở đây để hiển thị rằngCompositecol
là tên cột không phải tên bảng hoặc đóMyTable
là tên bảng không phải là tên lược đồ trong trường hợp thứ hai.
Bạn có thể yêu cầu tất cả kèo bóng đá hom nay trường có giá trị tổng hợp bằng cách viết.*
:
(Compositecol).*
Ký hiệu này hoạt động khác nhau tùy thuộc vào ngữ cảnh; nhìn thấyPhần 8.16.5Để biết chi tiết.
Có hai cú pháp có thể xảy ra cho một lời mời người vận hành:
Biểu kèo bóng đá hom nay Nhà điều hành Biểu kèo bóng đá hom nay (Toán tử Infix nhị phân) |
Nhà điều hành Biểu kèo bóng đá hom nay (toán tử tiền tố unary) |
trong đóNhà điều hành
Mã thông báo tuân theo kèo bóng đá hom nay quy tắc cú pháp của23128_23148hoặc là một trong những từ khóavà
, hoặc
vàkhông
hoặc là tên toán tử đủ điều kiện trong kèo bóng đá hom nay mẫu:
toán tử (
lược đồ
.
OperatorName
)
kèo bóng đá hom nay toán tử cụ thể nào tồn tại và liệu chúng là Unary hay nhị phân phụ thuộc vào những người vận hành đã được xác định bởi hệ thống hoặc người dùng.Chương 9Mô tả kèo bóng đá hom nay toán tử tích hợp.
Cú pháp cho một cuộc gọi chức năng là tên của một hàm (có thể đủ điều kiện với một tên lược đồ), theo sau là danh sách đối số của nó được đặt trong ngoặc đơn:
function_name
([Biểu kèo bóng đá hom nay
[,Biểu kèo bóng đá hom nay
...]])
Ví dụ: sau đây tính toán căn bậc hai của 2:
SQRT (2)
Danh sách kèo bóng đá hom nay chức năng tích hợp trongChương 9. kèo bóng đá hom nay chức năng khác có thể được thêm bởi người dùng.
Khi phát hành truy vấn trong cơ sở dữ liệu trong đó một số người dùng không tin tưởng người dùng khác, hãy quan sát kèo bóng đá hom nay biện pháp phòng ngừa bảo mật từPhần 4.3Khi viết chức năng gọi.
kèo bóng đá hom nay đối số có thể tùy ý có tên được đính kèm. Nhìn thấyPhần 4.3Để biết chi tiết.
Một hàm có một đối số duy nhất có loại tổng hợp có thể được gọi là bằng cách sử dụng cú pháp lựa chọn trường và ngược lại, lựa chọn trường có thể được viết theo kiểu chức năng. Nghĩa là, kèo bóng đá hom nay ký hiệucol (bảng)
vàBảng.col
có thể hoán đổi cho nhau. Hành vi này không phải là SQL-Standard nhưng được cung cấp trongPostgreSQLBởi vì nó cho phép sử dụng kèo bóng đá hom nay chức năng để mô phỏngMạnhTrường được tính toán. Để biết thêm thông tin, xemPhần 8.16.5.
ANBiểu kèo bóng đá hom nay tổng hợpThể hiện ứng dụng của hàm tổng hợp trên kèo bóng đá hom nay hàng được chọn bởi một truy vấn. Hàm tổng hợp giảm nhiều đầu vào thành một giá trị đầu ra duy nhất, chẳng hạn như tổng hoặc trung bình của kèo bóng đá hom nay đầu vào.
tổng hợp_name
(Biểu kèo bóng đá hom nay
[, ...] [order_by_clause
]) [bộ lọc (trong đóFilter_Clause
)]tổng hợp_name
(tất cảBiểu kèo bóng đá hom nay
[, ...] [order_by_clause
]) [bộ lọc (trong đóFilter_Clause
)]Tổng hợp_name
(khác biệtBiểu kèo bóng đá hom nay
[, ...] [order_by_clause
]) [bộ lọc (trong đóFilter_Clause
)]Tổng hợp_name
( *) [bộ lọc (trong đóFilter_Clause
)]tổng hợp_name
([Biểu kèo bóng đá hom nay
[, ...]]) trong nhóm (order_by_clause
) [bộ lọc (trong đóFilter_Clause
)]
WHEREtổng hợp_name
là tổng hợp được xác định trước đó (có thể đủ điều kiện với tên lược đồ) vàBiểu kèo bóng đá hom nay
là bất kỳ biểu kèo bóng đá hom nay giá trị nào không chứa biểu kèo bóng đá hom nay tổng hợp hoặc lệnh gọi hàm cửa sổ. Tùy chọnorder_by_clause
vàFilter_Clause
được mô tả bên dưới.
Hình kèo bóng đá hom nay đầu tiên của biểu kèo bóng đá hom nay tổng hợp gọi tổng hợp một lần cho mỗi hàng đầu vào. Biểu mẫu thứ hai giống như hình kèo bóng đá hom nay thứ nhất, vìtất cả
là mặc định. Mẫu thứ ba gọi tổng hợp một lần cho từng giá trị riêng biệt của biểu kèo bóng đá hom nay (hoặc tập hợp các giá trị riêng biệt, cho nhiều biểu kèo bóng đá hom nay) được tìm thấy trong các hàng đầu vào.Count (*)
Hàm tổng hợp. Mẫu cuối cùng được sử dụng vớiĐặt hàng-SETHàm tổng hợp, được mô tả bên dưới.
hầu hết các hàm tổng hợp bỏ qua các đầu vào null, để các hàng trong đó một hoặc nhiều biểu kèo bóng đá hom nay mang lại NULL được loại bỏ. Điều này có thể được coi là đúng, trừ khi có quy định khác, cho tất cả các tập hợp tích hợp.
Ví dụ:Count (*)
mang lại tổng số hàng đầu vào;Count (f1)
mang lại số lượng hàng đầu vào trong đóF1
không phải là null, vìĐếm
bỏ qua nulls; VàCount (khác biệt f1)
mang lại số lượng kèo bóng đá hom nay giá trị không khác biệt củaF1
.
Thông thường, kèo bóng đá hom nay hàng đầu vào được đưa vào hàm tổng hợp theo thứ tự không xác định. Trong nhiều trường hợp, điều này không quan trọng;min
Sản xuất cùng một kết quả bất kể thứ tự nào nhận được kèo bóng đá hom nay đầu vào. Tuy nhiên, một số hàm tổng hợp (chẳng hạn nhưmảng_agg
vàString_agg
) Tạo kết quả phụ thuộc vào thứ tự của kèo bóng đá hom nay hàng đầu vào. Khi sử dụng tổng hợp như vậy, tùy chọnorder_by_clause
có thể được sử dụng để chỉ định thứ tự mong muốn. Theorder_by_clause
Có cùng cú pháp với mức truy vấnĐặt hàng bởi
mệnh đề, như được mô tả trongPhần 7.5, ngoại trừ các biểu kèo bóng đá hom nay của nó luôn chỉ là các biểu kèo bóng đá hom nay và không thể là tên hoặc số cột đầu ra. Ví dụ:
3462_31199
kể từJSONB
Chỉ giữ khóa khớp cuối cùng, việc đặt hàng kèo bóng đá hom nay khóa của nó có thể có ý nghĩa:
Với Vals (K, V) AS (Giá trị ('Key0', '1'), ('Key1', '3'), ('Key1', '2'))
Khi xử lý kèo bóng đá hom nay chức năng tổng hợp đa mục tiêu, lưu ý rằngĐặt hàng bởi
mệnh đề đi sau tất cả kèo bóng đá hom nay đối số tổng hợp. Ví dụ: viết cái này:
Chọn String_agg (a, ',' thứ tự bằng a) từ bảng;
Không phải thế này:
Chọn String_agg (một đơn đặt hàng của a, ',') từ bảng; -- không đúng
31984_32095Đặt hàng bởi
Phím (cái thứ hai khá vô dụng vì nó là hằng số).
nếukhác biệt
được chỉ định vớiorder_by_clause
, Đặt hàng bởi
Biểu kèo bóng đá hom nay chỉ có thể tham chiếu các cột trongkhác biệt
Danh sách. Ví dụ:
với Vals (v) AS (Giá trị (1), (3), (4), (3), (2))
ĐặtĐặt hàng bởi
Trong danh sách đối số thông thường của tổng hợp, như được mô tả cho đến nay, được sử dụng khi đặt hàng kèo bóng đá hom nay hàng đầu vào cho kèo bóng đá hom nay tập hợp tổng hợp và tổng hợp tổng hợp, để đặt hàng là tùy chọn. Có một lớp con của kèo bóng đá hom nay hàm tổng hợp được gọi làTập hợp được đặt hàngmàorder_by_clause
làYêu cầu, thường là do tính toán của tổng hợp chỉ hợp lý theo một thứ tự cụ thể của kèo bóng đá hom nay hàng đầu vào của nó. kèo bóng đá hom nay ví dụ điển hình của kèo bóng đá hom nay tập hợp được đặt hàng bao gồm kèo bóng đá hom nay tính toán cấp bậc và phần trăm.order_by_clause
được viết bên trongTrong nhóm (...)
, như thể hiện trong cú pháp thay thế cuối cùng ở trên. Các biểu kèo bóng đá hom nay trongorder_by_clause
được đánh giá một lần trên mỗi hàng đầu vào giống như kèo bóng đá hom nay đối số tổng hợp thông thường, được sắp xếp theoorder_by_clause
s yêu cầu và được đưa vào hàm tổng hợp làm đối số đầu vào. (Điều này không giống như trường hợp không phải làtrong nhóm
order_by_clause
, không được coi là đối số (s) cho hàm tổng hợp.) Các biểu kèo bóng đá hom nay đối số trướctrong nhóm
, nếu có, được gọi làĐối số trực tiếpĐể phân biệt chúng vớiđối số tổng hợpđược liệt kê trongorder_by_clause
. Không giống như kèo bóng đá hom nay đối số tổng hợp thông thường, kèo bóng đá hom nay đối số trực tiếp chỉ được đánh giá một lần trên mỗi cuộc gọi tổng hợp, không một lần trên mỗi hàng đầu vào.Nhóm bởi
; Hạn chế này giống như khi các đối số trực tiếp không nằm trong một biểu kèo bóng đá hom nay tổng hợp.()
không(*)
. (POSTGRESQLthực sự sẽ chấp nhận chính tả, nhưng chỉ theo cách đầu tiên phù hợp với tiêu chuẩn SQL.)
Một ví dụ về cuộc gọi tổng hợp được đặt hàng là:
Chọn phần trăm_cont (0,5) trong nhóm (đặt hàng theo thu nhập) từ kèo bóng đá hom nay hộ gia đình;
có được giá trị phần trăm thứ 50 hoặc trung bình, củaThu nhập
Cột từ bảnghộ gia đình
. Đây,0.5
là một đối số trực tiếp; Sẽ không có ý nghĩa gì cho phân số phần trăm là một giá trị khác nhau giữa kèo bóng đá hom nay hàng.
nếuFilter
được chỉ định, sau đó chỉ kèo bóng đá hom nay hàng đầu vào màFilter_Clause
Đánh giá thành true được đưa vào hàm tổng hợp; kèo bóng đá hom nay hàng khác bị loại bỏ.
Chọn
kèo bóng đá hom nay hàm tổng hợp được xác định trước được mô tả trongPhần 9,21. kèo bóng đá hom nay chức năng tổng hợp khác có thể được thêm bởi người dùng.
Một biểu kèo bóng đá hom nay tổng hợp chỉ có thể xuất hiện trong danh sách kết quả hoặccó
3654_36525Chọn
Lệnh. Nó bị cấm trong kèo bóng đá hom nay điều khoản khác, chẳng hạn nhưWHERE
, bởi vì kèo bóng đá hom nay mệnh đề đó được đánh giá một cách hợp lý trước khi kết quả của kèo bóng đá hom nay tập hợp được hình thành.
Khi biểu kèo bóng đá hom nay tổng hợp xuất hiện trong trình điều khiển con (xemPhần 4.2.11vàPhần 9.24), tổng hợp thường được đánh giá trên kèo bóng đá hom nay hàng của trình điều khiển con. Nhưng một ngoại lệ xảy ra nếu kèo bóng đá hom nay đối số của tổng hợp (vàFilter_Clause
Nếu có) chỉ chứa các biến cấp bên ngoài: tổng hợp sau đó thuộc về mức bên ngoài gần nhất như vậy và được đánh giá trên các hàng của truy vấn đó. Toàn bộ biểu kèo bóng đá hom nay tổng hợp sau đó là một tham chiếu bên ngoài cho trình điều khiển con mà nó xuất hiện và hoạt động như một hằng số so với bất kỳ một đánh giá nào của trình điều khiển con đó.có
Điều khoản áp dụng đối với cấp truy vấn mà tổng hợp thuộc về.
AGọi chức năng cửa sổThể hiện ứng dụng của hàm giống như tổng hợp trên một số phần của kèo bóng đá hom nay hàng được chọn bởi một truy vấn. Không giống như kèo bóng đá hom nay cuộc gọi tổng hợp không cửa sổ, điều này không được gắn với việc nhóm kèo bóng đá hom nay hàng được chọn thành một hàng đầu ra duy nhất-mỗi hàng vẫn tách riêng trong đầu ra truy vấn.Phân vùng bởi
Liệt kê) cuộc gọi chức năng cửa sổ. Cú pháp của cuộc gọi chức năng cửa sổ là một trong những điều sau:
function_name
([Biểu kèo bóng đá hom nay
[,Biểu kèo bóng đá hom nay
...]]) [bộ lọc (trong đóFilter_Clause
)] trênwindow_name
function_name
([Biểu kèo bóng đá hom nay
[,Biểu kèo bóng đá hom nay
...]]) [bộ lọc (trong đóFilter_Clause
)] Over (window_definition
)function_name
( *) [bộ lọc (trong đóFilter_Clause
)] trênwindow_name
function_name
( *) [bộ lọc (trong đóFilter_Clause
)] Over (window_definition
)
WHEREwindow_definition
có cú pháp
[hiện tại_window_name
]Biểu kèo bóng đá hom nay
[, ...]]Biểu kèo bóng đá hom nay
[ASC | Desc |Nhà điều hành
] [NULLS Đầu tiên | CUỐI CÙNG ] [, ...] ]frame_clause
]
Tùy chọnframe_clause
có thể là một trong những
phạm vi | Hàng |frame_start
[frame_exclusion
]frame_start
vàframe_end
[frame_exclusion
]
WHEREframe_start
và4420_4431
có thể là một trong những
không bị ràng buộc trướcOffset
trướcOffset
sau đây
vàframe_exclusion
có thể là một trong
Loại trừ hàng hiện tại
ở đây,Biểu kèo bóng đá hom nay
Thể hiện bất kỳ biểu kèo bóng đá hom nay giá trị nào không chứa các cuộc gọi chức năng cửa sổ.
window_name
là một tham chiếu đến một đặc tả cửa sổ được đặt tên được xác định trong truy vấnWindow
mệnh đề. Ngoài ra, đầy đủwindow_definition
có thể được đưa ra trong ngoặc đơn, sử dụng cùng một cú pháp như để xác định một cửa sổ được đặt tên trongWindow
mệnh đề; XemChọn4245_42165Over wname
không chính xác tương đương vớiOver (wname ...)
; Cái sau ngụ ý sao chép và sửa đổi định nghĩa cửa sổ và sẽ bị từ chối nếu thông số kỹ thuật cửa sổ được tham chiếu bao gồm một mệnh đề khung.
ThePhân vùng bởi
nhóm mệnh đề kèo bóng đá hom nay hàng của truy vấn thànhphân vùng, được xử lý riêng bởi hàm cửa sổ.Phân vùng bởi
Hoạt động tương tự như mức truy vấnNhóm bởi
mệnh đề, ngoại trừ các biểu kèo bóng đá hom nay của nó luôn chỉ là các biểu kèo bóng đá hom nay và không thể là tên hoặc số cột đầu ra. Không cóPhân vùng bởi
, Tất cả kèo bóng đá hom nay hàng được sản xuất bởi truy vấn được coi là một phân vùng duy nhất. TheĐặt hàng bởi
mệnh đề xác định thứ tự trong đó kèo bóng đá hom nay hàng của phân vùng được xử lý bởi hàm cửa sổ. Nó hoạt động tương tự như cấp truy vấnĐặt hàng bởi
mệnh đề, nhưng tương tự không thể sử dụng tên hoặc số cột đầu ra. Không cóĐặt hàng bởi
, hàng được xử lý theo thứ tự không xác định.
Theframe_clause
Chỉ định tập hợp kèo bóng đá hom nay hàng cấu thànhkhung cửa sổ, là một tập hợp con của phân vùng hiện tại, cho kèo bóng đá hom nay chức năng cửa sổ hoạt động trên khung thay vì toàn bộ phân vùng. Tập hợp kèo bóng đá hom nay hàng trong khung có thể thay đổi tùy thuộc vào hàng nào là hàng hiện tại.phạm vi
, hàng
hoặcNhóm
chế độ; Trong mỗi trường hợp, nó chạy từframe_start
đếnframe_end
. Nếu nhưframe_end
bị bỏ qua, phần cuối mặc định làhàng hiện tại
.
Aframe_start
củakhông bị ràng buộc trước
có nghĩa là khung bắt đầu với hàng đầu tiên của phân vùng và tương tự Aframe_end
củaKhông giới hạn sau
có nghĩa là khung kết thúc bằng hàng cuối cùng của phân vùng.
inphạm vi
hoặcNhóm
MODE, Aframe_start
củahàng hiện tại
Có nghĩa là khung bắt đầu với hàng đầu tiên của hàng hiện tạiPeerhàng (một hàng mà cửa sổĐặt hàng bởi
mệnh đề sắp xếp tương đương với hàng hiện tại), trong khi Aframe_end
củahàng hiện tại
Có nghĩa là khung kết thúc với hàng đồng đẳng cuối cùng của hàng hiện tại. TRONGhàng
chế độ,hàng hiện tại
Đơn giản có nghĩa là hàng hiện tại.
trongOffset
trước
vàOffset
sau
Tùy chọn khung, TheOffset
4544_45526Offset
phụ thuộc vào chế độ khung:
inhàng
MODE, TheOffset
phải mang lại một số nguyên không âm, không âm và tùy chọn có nghĩa là khung bắt đầu hoặc kết thúc số lượng hàng được chỉ định trước hoặc sau hàng hiện tại.
inNhóm
Mode, TheOffset
Một lần nữa phải mang lại một số nguyên không âm, không âm và tùy chọn có nghĩa là khung bắt đầu hoặc kết thúc số lượng được chỉ định củaNhóm ngang hàngTrước hoặc sau nhóm ngang hàng của hàng hiện tại, trong đó một nhóm ngang hàng là một tập hợp kèo bóng đá hom nay hàng tương đương vớiĐặt hàng bởi
Đặt hàng. (Phải có mộtĐặt hàng bởi
mệnh đề trong định nghĩa cửa sổ để sử dụngNhóm
chế độ.)
inphạm vi
Chế độ, kèo bóng đá hom nay tùy chọn này yêu cầuĐặt hàng bởi
mệnh đề Chỉ định chính xác một cột. TheOffset
Chỉ định chênh lệch tối đa giữa giá trị của cột đó trong hàng hiện tại và giá trị của nó trong kèo bóng đá hom nay hàng trước hoặc sau của khung. Kiểu dữ liệu củaOffset
Biểu kèo bóng đá hom nay khác nhau tùy thuộc vào loại dữ liệu của cột đặt hàng. Đối với các cột đặt hàng số, nó thường có cùng loại với cột đặt hàng, nhưng đối với các cột đặt hàng DateTime, nó là mộtKhoảng
. Ví dụ: nếu cột đặt hàng thuộc loạingày
hoặcTimestamp
, người ta có thể viếtHàng | từ '1 ngày' trước và '4 ngày 'sau
. TheOffset
47596_47672không âmphụ thuộc vào kiểu dữ liệu của nó.
Trong mọi trường hợp, khoảng cách đến cuối khung được giới hạn bởi khoảng cách đến cuối phân vùng, do đó đối với kèo bóng đá hom nay hàng gần phân vùng kết thúc khung có thể chứa ít hàng hơn ở nơi khác.
Lưu ý rằng trong cả haihàng
và4842_4814
Mode,0 trước
và0 sau
tương đương vớihàng hiện tại
. Điều này thường giữ trongphạm vi
Chế độ, cho một ý nghĩa dành riêng cho loại dữ liệu phù hợp củaMạnhZeroKhăn.
Theframe_exclusion
Tùy chọn cho phép kèo bóng đá hom nay hàng xung quanh hàng hiện tại được loại trừ khỏi khung, ngay cả khi chúng sẽ được bao gồm theo kèo bóng đá hom nay tùy chọn kết thúc khung và khung.Loại trừ hàng hiện tại
Loại trừ hàng hiện tại khỏi khung.Loại trừ nhóm
Loại trừ hàng hiện tại và kèo bóng đá hom nay đồng nghiệp đặt hàng của nó khỏi khung.Loại trừ mối quan hệ
Loại trừ bất kỳ đồng nghiệp nào của hàng hiện tại khỏi khung, nhưng không phải hàng hiện tại.Không có người khác
Chỉ cần chỉ định rõ ràng hành vi mặc định của không loại trừ hàng hiện tại hoặc kèo bóng đá hom nay đồng nghiệp của nó.
Tùy chọn đóng khung mặc định làHàng | không bị ràng buộc trước
, giống nhưHàng | giữa hàng trước không giới hạn và hàng hiện tại
. VớiĐặt hàng bởi
, Điều này đặt khung thành tất cả kèo bóng đá hom nay hàng từ phân vùng khởi động thông qua hàng cuối cùng của hàng hiện tạiĐặt hàng bởi
ngang hàng. Không cóĐặt hàng bởi
, Điều này có nghĩa là tất cả kèo bóng đá hom nay hàng của phân vùng được bao gồm trong khung cửa sổ, vì tất cả kèo bóng đá hom nay hàng trở thành đồng nghiệp của hàng hiện tại.
Hạn chế làframe_start
không thểKhông giới hạn sau
, frame_end
không thểkhông bị ràng buộc trước
vàframe_end
Lựa chọn không thể xuất hiện sớm hơn trong danh sách trênframe_start
vàframe_end
Tùy chọn hơnframe_start
Lựa chọn không - ví dụPhạm vi giữa hàng hiện tại và
không được phép. Nhưng, ví dụ,Offset
trướcHàng từ 7 trước và 8 trước
được cho phép, mặc dù nó sẽ không bao giờ chọn bất kỳ hàng nào.
nếuFilter
được chỉ định, sau đó chỉ kèo bóng đá hom nay hàng đầu vào màFilter_Clause
Đánh giá thành true được đưa vào hàm cửa sổ; kèo bóng đá hom nay hàng khác bị loại bỏ.Filter
mệnh đề.
kèo bóng đá hom nay chức năng cửa sổ tích hợp được mô tả trongBảng 9.675486_51340
Cú pháp bằng cách sử dụng*
được sử dụng để gọi kèo bóng đá hom nay hàm tổng hợp không tham số như kèo bóng đá hom nay hàm cửa sổ, ví dụCount (*) Over (phân vùng theo thứ tự x của y)
. Dấu hoa thị (*
) Thông thường không được sử dụng cho kèo bóng đá hom nay chức năng dành riêng cho cửa sổ. kèo bóng đá hom nay chức năng dành riêng cho cửa sổ không cho phépkhác biệt
hoặcĐặt hàng bởi
Được sử dụng trong danh sách đối số chức năng.
kèo bóng đá hom nay cuộc gọi chức năng cửa sổ chỉ được phép trongChọn
Danh sách vàĐặt hàng bởi
mệnh đề của truy vấn.
Thông tin thêm về kèo bóng đá hom nay chức năng cửa sổ có thể được tìm thấy trongPhần 3.5, Phần 9.22vàPhần 7.2.5.
Một loại đúc chỉ định chuyển đổi từ loại dữ liệu này sang kiểu dữ liệu khác.POSTGRESQLChấp nhận hai cú pháp tương đương cho loại đúc:
Cast (Biểu kèo bóng đá hom nay
ASloại
)Biểu kèo bóng đá hom nay
::loại
TheCast
Cú pháp phù hợp với SQL; Cú pháp với::
là lịch sửPostgreSQLsử dụng.
Khi một diễn viên được áp dụng cho một biểu kèo bóng đá hom nay giá trị của một loại đã biết, nó thể hiện chuyển đổi loại thời gian chạy. Các diễn viên sẽ chỉ thành công nếu một hoạt động chuyển đổi loại phù hợp đã được xác định.Phần 4.1.2.7. Một diễn viên được áp dụng cho một chuỗi không được trang trí theo nghĩa đen đại diện cho sự gán ban đầu của một loại cho một giá trị hằng số theo nghĩa đen, và do đó nó sẽ thành công cho bất kỳ loại nào (nếu nội dung của chuỗi theo nghĩa đen là cú pháp đầu vào được chấp nhận cho kiểu dữ liệu).
Một loại diễn viên rõ ràng thường có thể được bỏ qua nếu không có sự mơ hồ về loại biểu kèo bóng đá hom nay giá trị phải tạo ra (ví dụ: khi nó được gán cho cột bảng); Hệ thống sẽ tự động áp dụng một loại đúc trong các trường hợp như vậy.OK để áp dụng ngầmTrong danh mục hệ thống. kèo bóng đá hom nay diễn viên khác phải được gọi bằng cú pháp đúc rõ ràng.
Cũng có thể chỉ định một loại đúc bằng cách sử dụng cú pháp giống như hàm:
typename
(Biểu kèo bóng đá hom nay
)
Tuy nhiên, điều này chỉ hoạt động cho kèo bóng đá hom nay loại có tên cũng hợp lệ dưới dạng tên hàm. Ví dụ,Double Precision
Không thể được sử dụng theo cách này, nhưng tương đươngfloat8
Có thể. Ngoài ra, tênKhoảng
, Thời gian
vàDấu thời gian
Chỉ có thể được sử dụng theo kiểu này nếu chúng được trích dẫn kép, vì xung đột cú pháp. Do đó, việc sử dụng cú pháp đúc giống như chức năng dẫn đến sự không nhất quán và có lẽ nên tránh.
Cú pháp giống như hàm trên thực tế chỉ là một cuộc gọi chức năng. Khi một trong hai cú pháp đúc tiêu chuẩn được sử dụng để thực hiện chuyển đổi thời gian chạy, nó sẽ gọi nội bộ một chức năng đã đăng ký để thực hiện chuyển đổi.HồiCú pháp giống như chức năngKhông gì khác hơn là một lời mời trực tiếp của chức năng chuyển đổi cơ bản. Rõ ràng, đây không phải là thứ mà một ứng dụng di động nên dựa vào.Tạo Cast.
Theđối chiếu
mệnh đề ghi đè lên sự đối chiếu của một biểu kèo bóng đá hom nay. Nó được gắn vào biểu kèo bóng đá hom nay mà nó áp dụng cho:
expr
đối chiếuđối chiếu
WHEREđối chiếu
là một định danh có thể sử dụng lược đồ. Theđối chiếu
mệnh đề liên kết chặt chẽ hơn kèo bóng đá hom nay toán tử; dấu ngoặc đơn có thể được sử dụng khi cần thiết.
Nếu không có đối chiếu được chỉ định rõ ràng, hệ thống cơ sở dữ liệu có nguồn gốc từ các cột liên quan đến biểu kèo bóng đá hom nay hoặc mặc định là đối chiếu mặc định của cơ sở dữ liệu nếu không tham gia
Hai cách sử dụng phổ biến củađối chiếu
mệnh đề đang ghi đè theo thứ tự sắp xếp theo mộtĐặt hàng bởi
mệnh đề, ví dụ:
Chọn A, B, C từ TBL trong đó ... Đặt hàng theo đối chiếu "C";
57685_57794
Chọn * Từ TBL trong đó A 'Foo' đối chiếu "C";
Lưu ý rằng trong trường hợp sauđối chiếu
mệnh đề được gắn vào đối số đầu vào của toán tử mà chúng ta muốn ảnh hưởng. Không quan trọng đối số nào của toán tử hoặc chức năng gọiđối chiếu
mệnh đề được đính kèm, vì sự đối chiếu được áp dụng bởi toán tử hoặc chức năng được lấy bằng cách xem xét tất cả kèo bóng đá hom nay đối số và một điều rõ ràngđối chiếu
mệnh đề sẽ ghi đè lên kèo bóng đá hom nay đối chiếu của tất cả kèo bóng đá hom nay đối số khác. (Đính kèm không phù hợpđối chiếu
Tuy nhiên, điều khoản với nhiều đối số là một lỗi. Để biết thêm chi tiết, xemPhần 23.2.) Vì vậy, điều này cho kết quả tương tự như ví dụ trước:
Chọn * Từ TBL trong đó một đối chiếu "C" 'foo';
Nhưng đây là một lỗi:
Chọn * từ TBL WHERE (a 'foo') đối chiếu "C";
Bởi vì nó cố gắng áp dụng một đối chiếu vào kết quả củatoán tử, thuộc loại dữ liệu không thể thu được
Boolean
.
59457_59492Chọn
Truy vấn trong ngoặc đơn trả về chính xác một hàng với một cột. (Nhìn thấyChương 7Để biết thông tin về kèo bóng đá hom nay truy vấn viết.)Chọn
Truy vấn được thực thi và giá trị trả về đơn được sử dụng trong biểu kèo bóng đá hom nay giá trị xung quanh. Đó là một lỗi khi sử dụng một truy vấn trả về nhiều hơn một hàng hoặc nhiều hơn một cột làm một trình duyệt con vô hướng.Phần 9.24Đối với các biểu kèo bóng đá hom nay khác liên quan đến các nhóm con.
Ví dụ: sau đây tìm thấy dân số thành phố lớn nhất ở mỗi tiểu bang:
Chọn tên, (chọn tối đa (pop) từ kèo bóng đá hom nay thành phố nơi kèo bóng đá hom nay thành phố.state = states.name)
Trình xây dựng mảng là một biểu kèo bóng đá hom nay xây dựng giá trị mảng bằng cách sử dụng các giá trị cho các phần tử thành viên của nó. Một hàm tạo mảng đơn giản bao gồm từ khóamảng
, khung vuông bên trái[
, Danh sách các biểu kèo bóng đá hom nay (được phân tách bằng dấu phẩy) cho các giá trị phần tử mảng và cuối cùng là một khung vuông bên phải]
. Ví dụ:
chọn Mảng [1,2,3+4];
Theo mặc định, loại phần tử mảng là loại phổ biến của các biểu kèo bóng đá hom nay thành viên, được xác định bằng cách sử dụng các quy tắc tương tự như đối vớiUnion
hoặccase
Cấu trúc (xemPhần 4.5). Bạn có thể ghi đè lên điều này bằng cách đúc một cách rõ ràng Trình xây dựng mảng vào loại mong muốn, ví dụ:
62031_6246
Điều này có tác dụng tương tự như đúc từng biểu kèo bóng đá hom nay cho loại phần tử mảng riêng lẻ. Để biết thêm về đúc, xemPhần 4.2.9.
Giá trị mảng đa chiều có thể được xây dựng bằng kèo bóng đá hom nay hàm tạo mảng làm tổ. Trong kèo bóng đá hom nay hàm tạo bên trong, từ khóamảng
có thể được bỏ qua. Ví dụ, những điều này tạo ra cùng một kết quả:
chọn mảng [mảng [1,2], mảng [3,4]];
Vì kèo bóng đá hom nay mảng đa chiều phải là hình chữ nhật, kèo bóng đá hom nay hàm tạo bên trong ở cùng cấp độ phải tạo ra kèo bóng đá hom nay cạnh phụ có kích thước giống hệt nhau. Bất kỳ diễn viên nào được áp dụng cho bên ngoàimảng
Constructor tuyên truyền tự động đến tất cả kèo bóng đá hom nay hàm tạo bên trong.
kèo bóng đá hom nay yếu tố xây dựng mảng đa chiều có thể là bất cứ thứ gì mang lại một mảng thuộc loại thích hợp, không chỉmảng
Xây dựng. Ví dụ:
Tạo bảng ARR (f1 int [], f2 int []);
Bạn có thể xây dựng một mảng trống, nhưng vì không thể có một mảng không có loại, bạn phải đúc rõ ràng mảng trống của mình vào loại mong muốn. Ví dụ:
Chọn Array [] :: Integer [];
Cũng có thể xây dựng một mảng từ kết quả của một trình điều khiển con. Trong kèo bóng đá hom nay mẫu này, hàm tạo mảng được viết bằng từ khóamảng
theo sau là một phần phụ (không được đặt dấu ngoặc). Ví dụ:
chọn mảng (chọn oid từ pg_proc trong đó đại từ như 'bytea%');
Trình truy xuất phải trả về một cột duy nhất. Nếu cột đầu ra của phụ thuộc loại không phải là một loại không phải, thì mảng một chiều kết quả sẽ có một phần tử cho mỗi hàng trong kết quả truy vấn con, với một loại phần tử phù hợp với cột đầu ra của SBURERY.
kèo bóng đá hom nay chỉ số của giá trị mảng được xây dựng vớimảng
Luôn bắt đầu bằng một. Để biết thêm thông tin về kèo bóng đá hom nay mảng, xemPhần 8.15.
Trình xây dựng hàng là một biểu kèo bóng đá hom nay xây dựng giá trị hàng (còn được gọi là giá trị tổng hợp) bằng cách sử dụng các giá trị cho các trường thành viên của nó. Một hàm tạo hàng bao gồm từ khóahàng
, dấu ngoặc đơn bên trái, không hoặc nhiều biểu kèo bóng đá hom nay (được phân tách bằng dấu phẩy) cho các giá trị trường hàng và cuối cùng là dấu ngoặc đơn bên phải. Ví dụ:
Chọn hàng (1,2,5, 'Đây là một bài kiểm tra');
Từ khóahàng
là tùy chọn khi có nhiều hơn một biểu kèo bóng đá hom nay trong danh sách.
Trình xây dựng hàng có thể bao gồm cú phápRowValue
.*
, sẽ được mở rộng thành danh sách kèo bóng đá hom nay phần tử của giá trị hàng, giống như xảy ra khi.*
Cú pháp được sử dụng ở cấp cao nhất của AChọn
Danh sách (xemPhần 8.16.5). Ví dụ: nếu bảngT
Có cộtF1
vàF2
, Những thứ này giống nhau:
Chọn hàng (t.*, 42) từ t;
trướcPOSTGRESQL8.2,.*
Cú pháp không được mở rộng trong kèo bóng đá hom nay hàm tạo hàng, để viếthàng (t.*, 42)
đã tạo một hàng hai trường có trường đầu tiên là giá trị hàng khác. Hành vi mới thường hữu ích hơn..*
, ví dụhàng (t, 42)
.
Theo mặc định, giá trị được tạo bởi Ahàng
Biểu kèo bóng đá hom nay thuộc loại bản ghi ẩn danh. Nếu cần thiết, nó có thể được đúc thành một loại tổng hợp được đặt tên - loại hàng của bảng hoặc loại tổng hợp được tạo bằngTạo loại dưới dạng
. Một diễn viên rõ ràng có thể cần thiết để tránh sự mơ hồ.
Tạo bảng mytable (f1 int, f2 float, văn bản F3);
kèo bóng đá hom nay hàm tạo hàng có thể được sử dụng để xây dựng kèo bóng đá hom nay giá trị tổng hợp để được lưu trữ trong cột bảng loại tổng hợp hoặc được chuyển đến một hàm chấp nhận tham số tổng hợp. Ngoài ra, có thể kiểm tra kèo bóng đá hom nay hàng bằng cách sử dụng kèo bóng đá hom nay toán tử so sánh tiêu chuẩn như được mô tả trongPhần 9.2, để so sánh một hàng với một hàng khác như được mô tả trongPhần 9.25và để sử dụng chúng liên quan đến kèo bóng đá hom nay nhóm con, như đã thảo luận trongPhần 9.24.
Thứ tự đánh giá các kèo bóng đá hom nay hiện phụ không được xác định. Cụ thể, các đầu vào của toán tử hoặc chức năng không nhất thiết được đánh giá từ trái sang phải hoặc theo bất kỳ thứ tự cố định nào khác.
Hơn nữa, nếu kết quả của một biểu kèo bóng đá hom nay có thể được xác định bằng cách chỉ đánh giá một số phần của nó, thì các biểu hiện phụ khác có thể không được đánh giá. Chẳng hạn, nếu một người đã viết:
Chọn True hoặc SOMEFUNC ();
sau đóSOMEFUNC ()
sẽ (có thể) không được gọi cả. Điều tương tự cũng sẽ xảy ra nếu một người viết:
Chọn Somoundunc () hoặc true;
Lưu ý rằng điều này không giống như từ trái sang phảingắn mạch”của kèo bóng đá hom nay toán tử Boolean được tìm thấy trong một số ngôn ngữ lập trình.
Do đó, việc sử dụng các chức năng có tác dụng phụ là một phần của các biểu kèo bóng đá hom nay phức tạp. Đặc biệt nguy hiểm khi dựa vào tác dụng phụ hoặc thứ tự đánh giá trongWHERE
vàcó
Điều khoản, vì các điều khoản đó được xử lý rộng rãi như một phần của việc phát triển kế hoạch thực thi. Biểu kèo bóng đá hom nay Boolean (và
/hoặc
/không
Kết hợp) Trong kèo bóng đá hom nay mệnh đề đó có thể được tổ chức lại theo bất kỳ cách nào được cho phép bởi kèo bóng đá hom nay luật của đại số Boolean.
Khi nó cần thiết để buộc lệnh đánh giá, Acase
Xây dựng (xemPhần 9,18) có thể được sử dụng. Ví dụ, đây là một cách không đáng tin cậy để cố gắng tránh sự phân chia theo 0 trong mộtWHERE
mệnh đề:
Chọn ... trong đó x 0 và y/x 1.5;
Nhưng điều này là an toàn:
Chọn ... Trường hợp trường hợp khi x 0 thì y/x 1.5 khác kết thúc sai;
Acase
Xây dựng được sử dụng theo kiểu này sẽ đánh bại kèo bóng đá hom nay nỗ lực tối ưu hóa, do đó chỉ nên thực hiện khi cần thiết. (Trong ví dụ cụ thể này, sẽ tốt hơn nếu vượt qua vấn đề bằng cách viếty 1.5*x
thay vào đó.)
case
Tuy nhiên, không phải là phương pháp chữa bệnh cho các vấn đề như vậy. Một hạn chế của kỹ thuật được minh họa ở trên là nó không ngăn chặn đánh giá sớm các kèo bóng đá hom nay hiện phụ liên tục.Phần 36.7, kèo bóng đá hom nay chức năng và toán tử được đánh dấuImmutable
có thể được đánh giá khi truy vấn được lên kế hoạch thay vì khi nó được thực thi. Do đó, ví dụ
Chọn trường hợp khi x 0 thì X khác 1/0 kết thúc từ tab;
Có khả năng dẫn đến sự cố phân chia từng không do người lập kế hoạch cố gắng đơn giản hóa kèo bóng đá hom nay hiện phụ liên tục, ngay cả khi mỗi hàng trong bảng cóx 0
sao chokhác
ARM sẽ không bao giờ được nhập vào thời gian chạy.
Trong khi ví dụ cụ thể đó có vẻ ngớ ngẩn, kèo bóng đá hom nay trường hợp liên quan rõ ràng không liên quan đến kèo bóng đá hom nay hằng số có thể xảy ra trong kèo bóng đá hom nay truy vấn được thực thi trong kèo bóng đá hom nay hàm, vì kèo bóng đá hom nay giá trị của kèo bóng đá hom nay đối số chức năng và kèo bóng đá hom nay biến cục bộ có thể được chèn vào kèo bóng đá hom nay truy vấn làm hằng số cho kèo bóng đá hom nay mục đích lập kế hoạch. Ở trongPL/PGSQLChức năng, ví dụ, sử dụngnếu
-sau đó
-khác
Tuyên bố để bảo vệ tính toán rủi ro an toàn hơn nhiều so với chỉ làm tổ trong mộtcase
Biểu kèo bóng đá hom nay.
Một giới hạn khác của cùng loại là Acase
Không thể ngăn chặn đánh giá biểu kèo bóng đá hom nay tổng hợp có trong đó, vì các biểu kèo bóng đá hom nay tổng hợp được tính toán trước các biểu kèo bóng đá hom nay khác trong AChọn
Danh sách hoặccó
mệnh đề được xem xét. Ví dụ: truy vấn sau đây có thể gây ra lỗi phân chia từng không mặc dù dường như đã được bảo vệ chống lại nó:
Chọn trường hợp khi tối thiểu (nhân viên) 0
Themin ()
vàavg ()
Tập hợp được tính đồng thời trên tất cả kèo bóng đá hom nay hàng đầu vào, vì vậy nếu bất kỳ hàng nào cónhân viên
Bằng không, lỗi phân chia từng không sẽ xảy ra trước khi có bất kỳ cơ hội nào để kiểm tra kết quả củamin ()
. Thay vào đó, hãy sử dụngWHERE
hoặcFilter
mệnh đề để ngăn kèo bóng đá hom nay hàng đầu vào có vấn đề tiếp cận hàm tổng hợp ở nơi đầu tiên.