2010-02-28 55 views
6

Tôi có một truy vấn MySQL mà tôi muốn nó phải có một cột giả trả về có mà là dựa tắt của:MySQL: giá trị dựa trên điều kiện

  • Nếu columnW không bằng 0, nó phải là 1 NHƯNG
  • Nếu columnX không bằng 0, nó phải là 2 NHƯNG
  • Nếu columnY không bằng 0, nó phải là 3 NHƯNG
  • Nếu columnZ không bằng 0, nó phải là 4

Hy vọng điều đó có ý nghĩa. SQL của tôi không đủ tốt để quấn quanh đầu tôi.

Trả lời

9

Hãy thử sử dụng một case expression:

SELECT CASE WHEN columnZ <> 0 THEN 4 
      WHEN columnY <> 0 THEN 3 
      WHEN columnX <> 0 THEN 2 
      WHEN columnW <> 0 THEN 1 
      ELSE 0 
     END AS your_alias_name 
FROM ... 
+0

Được rồi, tôi có nó biết. Cảm ơn sự giúp đỡ với cú pháp. –

+0

Có chức năng nào mà tôi có thể đặt giá trị đã chọn vào danh sách và sử dụng giá trị của cột làm chỉ số để chọn từ danh sách đó hay không, ví dụ: CHỌN xxxx (fruit-index-field-name, 'apple', 'orange', 'đu đủ' ...) như FruitName, ... –

1

Bạn có thể sử dụng CASE ... WHEN để thực hiện việc này.

Xem

mysql> SELECT CASE 1 WHEN 1 THEN 'one' 
    ->  WHEN 2 THEN 'two' ELSE 'more' END; 
     -> 'one' 
mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END; 
     -> 'true' 
mysql> SELECT CASE BINARY 'B' 
    ->  WHEN 'a' THEN 1 WHEN 'b' THEN 2 END; 
     -> NULL 
Các vấn đề liên quan