TOÁN TỬ

SỰ KHÁC NHAU GIỮA TOÁN TỬ “=” (Equal to) VÀ TOÁN TỬ “==” (Strict Equal to) TRONG DAX

Ngày đăng: 28/05/2023

Với DAX, chúng ta có nhiều toán tử (Operators) để có thể sử dụng trong mỗi biểu thức. Trong các toán tử so sánh, DAX cung cấp 2 toán tử khá giống nhau là toán tử “=” (Equal to) và toán tử “==” (Strict Equal to). Khi thực hiện các biểu thức tính với DAX, đôi lúc bạn sẽ thắc mắc về sự khác nhau giữa toán tử “=” (Equal to) và toán tử “==” (Strict Equal to). Bài viết hôm nay Datapot sẽ giúp bạn phân biệt vấn đề này nhé.

Biểu thức toán tử “=” sẽ trả qua kết quả là TRUE khi 2 đối số được so sánh có kết quả bằng nhau. Phép toán tử này sẽ không thực hiện bất kỳ 1 chuyển đổi ngầm định nào giữa các chuỗi ký tự, và các giá trị Boolean.

Các phép so sánh dưới đây luôn trả ra kết quả là TRUE: 

  • So sánh giữa BLANK và 0 
  • So sánh giữa BANK và ký tự trống (empty string) 
  • So sánh giữa BLANK và FALSE 

Biểu thức toán tử “==” sẽ trả ra kết quả là TRUE khi 2 đối số so sánh có kết quả bằng nhau hoặc không có giá trị nào bằng BLANK. Khi so sánh giá trị BLANK với một giá trị khác, kết quả sẽ trả về là FALSE. Tương tự với toán tử “=”, toán tử “==” không thực hiện bất kỳ 1 chuyển đổi ngầm định nào giữa các chuỗi ký tự, và các giá trị Boolean.

Như vậy, ta có thể hiểu sự khác nhau giữa 2 toán tử này chỉ xuất hiện khi có ít nhất 1 trong 2 đối số so sánh là BLANK 

Biểu thức “=” Kết quả  Biểu thức “==” Kết quả 
Product[Color] = “Red”  Trả ra kết quả là TRUE nếu Product[Color] có giá trị “Red”, còn lại sẽ trả kết quả là FALSE Product[Color] == “Red”  Trả ra kết quả là TRUE nếu Product[Color] có giá trị “Red”, còn lại sẽ trả kết quả là FALSE 
Product[Color] = BLANK() Trả ra kết quả là TRUE nếu Product[Color] có giá trị BLANK hoặc ký tự trống, còn lại sẽ trả kết quả là FALSE Product[Color] == BLANK() Trả ra kết quả là TRUE nếu Product[Color] có giá trị BLANK, trả kết quả là FALSE nếu Product[Color] là ký tự trống hoặc giá trị khác  
Product[Color] = “”            Trả ra kết quả là TRUE nếu Product[Color] có giá trị BLANK hoặc ký tự trống, còn lại sẽ trả kết quả là FALSE Product[Color] == “”            Trả ra kết quả là TRUE nếu Product[Color] có giá trị là ký tự trống, trả kết quả là FALSE nếu Product[Color] là BLANK hoặc giá trị khác 

Ví dụ bên dưới thể hiện so sánh 0 và Blank bằng 2 cách khác nhau và kết quả 

Comparision 0 Equal to BLANK = 0 = BLANK() 

Comparision 0 Strict equal to BLANK = 0 == BLANK() 

Toán tử

Điểm giống nhau cơ bản giữa toán tử “=” và “==” là chúng đều dùng để so sánh và trả về giá trị là TRUE hoặc FALSE. Tuy nhiên trong các trường hợp so sánh với giá trị BLANK hoặc ký tự trống thì 2 cách toán tử sẽ khác nhau. Nhìn chung toán tử “==” như cái tên của nó – Strict Equal, là phép so sánh bằng chặt chẽ hơn. Để an toàn, chúng ta có thể ưu tiên sử dụng dấu “==” trong các phép so sánh.  

Hy vọng sau bài viết này, bạn không còn phải lăn tăn khi lựa chọn cách sử dụng hai toán tử trên khi thực hiện các biểu thức DAX trên Power BI nhé.

Tìm hiểu về DAX trong Power BI tại đây.

Chia sẻ bài viết này

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *