Có cái gì đó nhưTrong SQL, đang có không tổng hợp min/khai thác tối đa
select max(val,0)
from table
Tôi không tìm kiếm để tìm giá trị lớn nhất của toàn bộ bảng
Cần phải có một dễ dàng hơn cách này đúng không?
select case when val > 0 then val else 0 end
from table
EDIT: Tôi đang sử dụng Microsoft SQL Server
gì thực hiện SQL? – JNK
Ở Fortran, MAX (a, b, ...) đã làm những gì bạn muốn. Trong SQL, một số phương ngữ hỗ trợ các chức năng như 'LARGER' hoặc' SMALLER' hoặc 'LARGEST' hoặc' SMALLEST'. Không có chức năng chuẩn cho nhiệm vụ AFAIK. –
Hãy coi chừng NULL đáng sợ. Bạn có cần: 'CASE WHEN val IS NULL THEN 0 WHEN val> 0 THEN val ELSE 0 END' (đối với trường hợp 0 được biết là không null), hoặc' CASE WHEN VAL1 IS NULL THEN val2 WHEN val2 IS NULL THEN val1 WHEN val1> val2 THÌ val1 ELSE val2 END' cho 'MAX (val1, val2)'. –