Tôi có một bảng có nhiều cột. Giá trị của một cột là 0
hoặc 1
. Tôi muốn viết truy vấn trả về "Xin chào" nếu giá trị là 0
hoặc "Tạm biệt" nếu đó là 1
. Cách thích hợp để viết truy vấn này là gì?Thay thế giá trị có điều kiện trong SQL Server
Trả lời
Sử dụng một CASE
expression
SELECT CASE YourCol
WHEN 0 THEN 'Hello'
WHEN 1 THEN 'Bye'
END AS SomeAlias
FROM YourTable
Nếu bạn chọn đa/tất cả các cột, hãy thử với bên dưới:
SELECT Column1, Column2, -- Put other column name here
CASE TargetColumnName
WHEN 0 THEN 'Hello'
WHEN 1 THEN 'Bye'
END AS TargetAliasColumnName
FROM YourTableName
Có phải tên "TargetColumnName" là tên nội tại của SQL do đó SQL biết rằng nó đề cập đến "Column1, Column2, ..."? – Hans
Bạn có thể viết tên cột mong muốn của bạn nói tên cột của bạn là Column2 thay vì TargetColumnName - tôi đã viết TargetColumnName trong câu trả lời của tôi vì có thể có nhiều tên cột trong câu lệnh SELECT của bạn và bạn cần chỉ định tên cột bắt buộc của bạn trong 'CASE' biểu hiện trong SQL, hy vọng bạn đã có quan điểm của tôi. Cảm ơn –
Vì vậy, bạn đang nói "TargetColumnName" là nơi giữ cho một trong Column1, Column2. Tôi nghĩ bạn đã mã hóa cho nhiều cột và thực hiện tác vụ thay thế có điều kiện cho tất cả các cột được chọn thay vì chỉ một cột. Nếu đúng như vậy, sự khác biệt giữa hoạt động trên một cột đơn lẻ như được hiển thị trong câu trả lời của Martin Smith và rằng trên nhiều cột như bạn có vẻ đề nghị mã của bạn sẽ hoạt động như thế nào? – Hans
đánh tôi bằng giây ... 1 để đọc dễ dàng. –
Plz giúp tôi.Nếu tôi muốn chọn một số cột. Ví dụ chọn ID, YourCol, Tên. (YourCol là cột được chọn biểu thức trường hợp). – Tavousi