Sử dụng If trong SQL như thế nào ?

Liên hệ QC

Ngày mai trời lại sáng

Thành viên thường trực
Tham gia
4/7/21
Bài viết
339
Được thích
139
Xin chào anh chị,em có câu lệnh như sau:

SELECT MAX (idMax) FROM (SELECT RIGHT(s.ID,3) as idMax ,s.Item,s.Name FROM ODER s WHERE s.XDATE like '%20220405%' ) AS Tam

- Kết quả trả về 102
-Nếu sửa s.XDATE like '%20220407%' thì trả về Null

Em muốn nếu trả về null thì sẽ trả về giá trị: 1 còn nếu >0 thì giữ nguyên câu lệnh trên sẽ viết thế nào?
Anh chị nào biết giúp em,
xin cảm ơn
 
Bạn dùng câu lệnh SQL này cho SQL Server hay chỉ là câu lệnh SQL dùng cho ADO?
Thường tôi hay dùng cách này: mở recordset từ câu lệnh SQL trên.
"Select Max(idMax) As SoMax From....."

Mã:
If IsNull(rs!SoMax) Then
   SoTT = 1
Else
   SoTT = rs!SoMax + 1
End if
 
Lần chỉnh sửa cuối:
Em sử dụng trong SQL Server ạ.
Mần ăn chủ quan. Phần lớn các tỉnh đều có huyện/quận Châu Thành. Nói "tôi ở Châu Thành" ai biết đường nào mà rờ.

Trong SQL Server thì ngôn ngữ là T-SQL.
T-SQL có hai cách để sử lý Null:
1. Hàm IsNull
KetQua = IsNull(TriCanXet, 1)
2. Hàm Coalesce
KetQua = Coalesce(TriCanXet, 1)

...
Em muốn nếu trả về null thì sẽ trả về giá trị: 1 còn nếu >0 thì giữ nguyên câu lệnh trên sẽ viết thế nào?
...
Câu này hoàn toàn tối nghĩa. Null không phải là 0.
 
Cảm ơn chú @VetMini và anh @ongke0711 đã gợi ý.
Hic kiểu gợi ý này chắc cháu phải mày mò thêm quá ...
Mày mò cái gì? T-SQL không khó lắm với người có căn bản, nhưng khá khó với người khong có căn bản về CSDL LH.
Chịu khó đi lại từ căn bản là xong.

SELECT Coalesce(MAX (idMax), 1) FROM (SELECT RIGHT(s.ID,3) as idMax ,s.Item,s.Name FROM ODER s WHERE s.XDATE like '%20220405%' ) AS Tam

Mà câu lệnh này ngộ. Chỉ sử dụng có Order.ID thì lấy Order.Item và Order.Name làm gì.
 
Mày mò cái gì? T-SQL không khó lắm với người có căn bản, nhưng khá khó với người khong có căn bản về CSDL LH.
Chịu khó đi lại từ căn bản là xong.

SELECT Coalesce(MAX (idMax), 1) FROM (SELECT RIGHT(s.ID,3) as idMax ,s.Item,s.Name FROM ODER s WHERE s.XDATE like '%20220405%' ) AS Tam

Mà câu lệnh này ngộ. Chỉ sử dụng có Order.ID thì lấy Order.Item và Order.Name làm gì.
Cảm ơn chú, à cháu thêm vào để kiểm tra xem ứng với ID đó thì các trường khác là thông tin gì thôi vì ID là số tự sinh.
Vâng cháu mới sờ vào SQL ạ.
Bài đã được tự động gộp:

Mày mò cái gì? T-SQL không khó lắm với người có căn bản, nhưng khá khó với người khong có căn bản về CSDL LH.
Chịu khó đi lại từ căn bản là xong.

SELECT Coalesce(MAX (idMax), 1) FROM (SELECT RIGHT(s.ID,3) as idMax ,s.Item,s.Name FROM ODER s WHERE s.XDATE like '%20220405%' ) AS Tam

Mà câu lệnh này ngộ. Chỉ sử dụng có Order.ID thì lấy Order.Item và Order.Name làm gì.
Ra rồi ra rồi cháu cảm ơn chú nhé, hehe .
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom