Tôi đang tìm cách tạo báo cáo trường hợp trong truy vấn chọn sql sử dụng ít hơn và lớn hơn dấu. Ví dụ, tôi muốn chọn một bảng xếp hạng dựa trên một biến:Sử dụng các dấu hiệu so sánh bên trong câu lệnh dạng chữ sql
DECLARE @a INT
SET @a = 0
SELECT CASE
WHEN @a < 3 THEN 0
WHEN @a = 3 THEN 1
WHEN @a > 3 THEN 2
END
Tôi muốn viết nó như:
DECLARE @a INT
SET @a = 0
SELECT CASE @a
WHEN < 3 THEN 0
WHEN 3 THEN 1
WHEN > 3 THEN 2
END
... nhưng SQL không cho phép tôi sử dụng < và> dấu hiệu theo cách này. Có một cách mà tôi có thể làm điều này là SQL 2005, hoặc tôi cần phải sử dụng mã như trong lần đầu tiên.
Lý do chỉ muốn mã ở đó một lần là vì nó sẽ làm cho mã dễ đọc hơn/dễ bảo trì hơn và cũng bởi vì tôi không chắc liệu máy chủ SQL có phải chạy phép tính cho mỗi câu lệnh CASE hay không.
Tôi đang tìm kiếm một VB.NET tuyên bố trường hợp equivelent:
Select Case i
Case Is < 100
p = 1
Case Is >= 100
p = 2
End Select
Có lẽ nó không thể thực hiện trong SQL và đó là ok, tôi chỉ muốn xác nhận rằng.
Lệnh 'CASE' đang làm việc như TRƯỜNG HỢP hoặc switch trong hầu hết các khác ngôn ngữ lập trình. Tôi không thấy điểm cần thiết của bạn. –
Xin lỗi, kết thúc câu hỏi của tôi đã bị cắt. Hãy cho tôi biết nếu bạn vẫn không hiểu những gì tôi đang cố gắng đạt được – Greg
Biểu thức CASE sẽ ngắn mạch và chỉ đánh giá các trường hợp cho đến khi và nếu một trong các trường hợp là đúng. Tôi không nghĩ có bất kỳ lợi thế nào với cách tiếp cận khác. –