SAP Công đoàn HANA & Tất cả các công đoàn: OperaVí dụ về tor
⚡ Tóm tắt thông minh
SAP HANNA OperaTor thực hiện các phép tính, so sánh giá trị hoặc gán giá trị bên trong SQL. Có sáu nhóm toán tử: toán tử một ngôi và hai ngôi, toán tử số học, toán tử chuỗi, toán tử so sánh, toán tử logic và toán tử tập hợp như UNION và INTERSECT.

SAP HANNA Operator có thể được sử dụng để tính toán, so sánh giá trị hoặc gán giá trị.
SAP HANNA Operaxoắn
- Đơn nhất và nhị phân Operator
- toán học Operator
- Chuỗi Operaxoắn
- sự so sánh Operator
- logic Operator
- Thiết lập Operator
Mỗi toán tử đều trả về một giá trị, đó là lý do tại sao chúng có thể lồng nhau. Thứ tự đánh giá của chúng được xác định bởi độ ưu tiên, được giải thích sau phần giới thiệu về từng nhóm toán tử.
Đơn nhất và nhị phân Operator
| Operator | Operasản xuất | Mô tả Chi tiết |
|---|---|---|
| Đơn nguyên | Toán tử một ngôi áp dụng cho một toán hạng | Toán tử cộng đơn nguyên (+) Toán tử phủ định đơn nguyên (-) Phủ định logic (NOT) |
| Nhị phân | Một nhị phân Operator áp dụng trên hai toán hạng | Các toán tử nhân ( *, / ) Các toán tử cộng ( +,- ) Các toán tử so sánh ( =,!=,<,>,<=,>=) Các toán tử logic ( AND, OR ) |
toán học Operator
- Phép cộng (+)
- Subtraction (-)
- Phép nhân ( * )
- Phân công ( / )
Chuỗi Operator
Một chuỗi Operator là toán tử nối kết hợp hai mục như chuỗi, biểu thức hoặc hằng số thành một.
Hai thanh dọc “||” được sử dụng làm toán tử nối.
sự so sánh Operator
Toán tử so sánh được sử dụng để so sánh hai toán hạng. Dưới đây là danh sách các toán hạng so sánh Operator-
- Bằng ( = )
- Lớn Hơn ( > )
- Less Hơn ( < )
- Lớn hơn hoặc bằng ( >= )
- Less lớn hơn hoặc bằng ( <= )
- Không bằng (!= , <> )
logic Operator
Toán tử logic được sử dụng trong tiêu chí tìm kiếm.
Ví dụ WHERE điều kiện1 VÀ / HOẶC / KHÔNG điều kiện2
Dưới đây là danh sách toán tử logic –
- VÀ – (ví dụ: WHERE condition1 AND condition2)
Nếu cả Điều kiện 1 VÀ Điều kiện 2 đều đúng thì Điều kiện kết hợp là đúng, nếu không nó sẽ sai. - HOẶC – (ví dụ: WHERE condition1 OR condition2)
Nếu Điều kiện 1 HOẶC Điều kiện 2 là đúng thì điều kiện kết hợp là đúng hoặc sai nếu cả hai Điều kiện đều sai. - KHÔNG – (ví dụ: điều kiện WHERE NOT)
Điều kiện KHÔNG đúng Nếu Điều kiện sai.
Thiết lập Operaxoắn
- UNION – Kết hợp hai hoặc nhiều câu lệnh SELECT hoặc truy vấn mà không trùng lặp.
- UNION ALL – Kết hợp hai hoặc nhiều câu lệnh SELECT hoặc truy vấn, bao gồm tất cả các hàng trùng lặp.
- INTERSECT – Kết hợp hai hoặc nhiều câu lệnh SELECT hoặc truy vấn, và trả về tất cả các hàng chung.
- NGOẠI TRỪ – Lấy kết quả từ truy vấn đầu tiên và loại bỏ hàng được chọn bởi truy vấn thứ hai.
Ví dụ Tôi có hai bảng (table1, table2) trong đó một số giá trị là phổ biến.
Chúng tôi sử dụng toán tử Set (Union, Union ALL, Intersect, ngoại trừ) cho hai bảng này trong SQL như sau -
Tạo Table1- Tập lệnh SQL
CREATE COLUMN TABLE DHK_SCHEMA.TABLE1 ( ELEMENT CHAR(1), PRIMARY KEY (ELEMENT) ); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('P'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('Q'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('R'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('S'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('T');
Tạo Table2- Tập lệnh SQL
CREATE COLUMN TABLE DHK_SCHEMA.TABLE2 ( ELEMENT CHAR(1), PRIMARY KEY (ELEMENT) ); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('S'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('T'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('U'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('V'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('W');
Lưu ý: Ở đây “DHK_SCHEMA” là tên lược đồ, người dùng có thể thay đổi tên lược đồ trong SQL cho phù hợp.
Thiết lập Operator Ví dụ như dưới đây
| Operator | Truy vấn SQL | Đầu ra | Sử dụng |
|---|---|---|---|
| UNION | CHỌN * TỪ ( CHỌN ELEMENT TỪ DHK_SCHema.TABLE1 UNION CHỌN ELEMENT TỪ DHK_SCHema.TABLE2 ) ĐẶT BỞI YẾU TỐ; |
Kết hợp Kết quả của hai hoặc nhiều truy vấn không trùng lặp. | |
| ĐOÀN KẾT TẤT CẢ | CHỌN * TỪ ( CHỌN ELEMENT TỪ DHK_SCHema.TABLE1 ĐOÀN KẾT TẤT CẢ CHỌN ELEMENT TỪ DHK_SCHema.TABLE2 ) ĐẶT BỞI YẾU TỐ; |
Kết hợp Kết quả của hai hoặc nhiều truy vấn với tất cả các truy vấn trùng lặp. | |
| GIAO NHAU | CHỌN * TỪ ( CHỌN ELEMENT TỪ DHK_SCHema.TABLE1 GIAO NHAU CHỌN ELEMENT TỪ DHK_SCHema.TABLE2 ) ĐẶT BỞI YẾU TỐ; |
Kết hợp Kết quả của hai hoặc nhiều truy vấn với tất cả các hàng chung. | |
| NGOẠI TRỪ | CHỌN * TỪ ( CHỌN ELEMENT TỪ DHK_SCHema.TABLE1 NGOẠI TRỪ CHỌN ELEMENT TỪ DHK_SCHema.TABLE2 ) ĐẶT BỞI YẾU TỐ; |
Lấy đầu ra từ truy vấn đầu tiên và xóa hàng được chọn bởi truy vấn thứ hai |
Thiết lập OperaQuy tắc và yêu cầu của Tor
Các toán tử tập hợp trông đơn giản nhưng lại dễ dàng từ chối các truy vấn, bởi vì chúng so sánh toàn bộ tập kết quả chứ không phải các giá trị riêng lẻ. Có bốn quy tắc chi phối chúng.
- Số cột phải khớp nhau. Cả hai câu lệnh SELECT phải trả về cùng số lượng cột. Nếu không khớp, lỗi sẽ xảy ra ngay lập tức và thông báo sẽ nêu tên vị trí chứ không phải tên cột.
- Các kiểu dữ liệu phải tương thích với nhau. Cột đầu tiên của truy vấn thứ nhất được so khớp với cột đầu tiên của truy vấn thứ hai, và cứ thế tiếp tục theo vị trí, chứ không phải theo tên. Các kiểu dữ liệu số tương thích được chuyển đổi tự động; cột ký tự so với cột ngày tháng thì không.
- Tên cột được lấy từ truy vấn đầu tiên. Bất kể câu lệnh thứ hai gọi các cột của nó là gì thì kết quả đầu ra đều bị bỏ qua, điều này có thể gây ngạc nhiên cho bất kỳ ai lần đầu tiên đọc kết quả của phép UNION.
- Lệnh ORDER BY áp dụng cho toàn bộ kết quả. Nó thuộc về phần cuối, sau câu lệnh SELECT cuối cùng, và đó là lý do tại sao các ví dụ trên lại bao bọc câu lệnh UNION trong một câu lệnh SELECT bên ngoài.
Sự khác biệt về hiệu năng giữa UNION và UNION ALL rất đáng chú ý. UNION phải sắp xếp hoặc băm kết quả kết hợp để loại bỏ các phần tử trùng lặp, trong khi UNION ALL chỉ đơn giản là thêm vào. Trong trường hợp không thể có hoặc chấp nhận được các phần tử trùng lặp, UNION ALL sẽ nhanh hơn đáng kể trên các bảng lớn. Các định nghĩa cột được sử dụng trong các bảng này được đề cập trong phần tiếp theo. SAP Các kiểu dữ liệu HANA.
OperaThứ tự ưu tiên trong SAP HANA SQL
Khi nhiều toán tử xuất hiện trong cùng một biểu thức, thứ tự ưu tiên sẽ quyết định toán tử nào được đánh giá trước. Sai sót trong thao tác này sẽ dẫn đến một truy vấn chạy hoàn hảo nhưng trả về các hàng sai, điều này nguy hiểm hơn nhiều so với lỗi cú pháp.
| Mã đơn hàng | Operaxoắn | Phân loại |
|---|---|---|
| 1 | () | Dấu ngoặc đơn luôn được đánh giá trước tiên. |
| 2 | + – (toán hạng đơn) | Phép cộng đơn và phép phủ định |
| 3 | * / | Nhân và chia |
| 4 | + – || | Phép cộng, phép trừtracsự nối, sự kết nối |
| 5 | = != < > <= >= | sự so sánh |
| 6 | KHÔNG | Phủ định logic |
| 7 | VÀ | phép nối logic |
| 8 | OR | Phép tuyển logic |
Cạm bẫy kinh điển nằm ở hàng 7 và 8. Vì phép toán AND liên kết chặt chẽ hơn phép toán OR, nên điều kiện WHERE region = 'EAST' OR region = 'WEST' AND status = 'OPEN' được đọc là Hướng Đông, hoặc hướng Tây, nơi đó đang mở.Mọi hàng phía đông đều được trả về bất kể trạng thái. Thêm dấu ngoặc đơn xung quanh hai bài kiểm tra vùng sẽ khắc phục được sự cố này.
💡 Mẹo: Hãy đặt dấu ngoặc đơn xung quanh mọi điều kiện kết hợp AND và OR, ngay cả khi thứ tự ưu tiên đã cho ra kết quả mong muốn. Truy vấn sẽ tự giải thích và vẫn giữ nguyên giá trị sau khi được chỉnh sửa bởi nhà phát triển khác.
Cú pháp câu lệnh thông dụng hàng ngày được đề cập trong phần này. SAP HANA SQL hướng dẫn và nền tảng rộng hơn trong SAP Hướng dẫn HANA series.





