Thứ Sáu, 15 tháng 3, 2013

Tổng hợp các thủ thuật lập trình SQL server

http://hmweb.com.vn/sql-server/tong-hop-cac-thu-thuat-lap-trinh-sql-server.htm

Tổng hợp các thủ thuật lập trình SQL server

HMWEB đã có các bài tổng hợp các thủ thuật lập trình với asp.net, Tôi cũng sẽ lập topic tổng hợp các thủ thuật lập trình với SQL. Đôi khi nó sẽ giúp ta cải tiến và đơn giản hóa rất nhiều trong khi code với các ngôn ngữ web

1. Sử dụng hàm Isnull

Giá trị là null trong SQL đôi khi khiến kết quả tính toán của ta không thể thực hiện được. Để đảm bảo giá trị truy vấn hoặc truyền vào biến luôn có giá trị (Không phải null) bạn sử dụng hàm isnull như ví dụ:

DECLARE @count int SELECT @count=isnull(Count(*),0) FROM TB_News tn WHERE tn.idNews=10

Ở ví dụ này nếu bảng TB_News của bạn không có idNews=10 thì sẽ trả về null nhưng nếu bạn sử dụng isnull thì biến @count của bạn sẽ là 0. Nếu không sử dụng isnull bạn thường phải làm như sau:

DECLARE @count int ELECT @count =Count(*) FROM TB_News tn WHERE tn.idNews=10 IF @count IS NULL SET @count =0

Bạn có thể so sánh 2 cách và lựa chọn

2. Cập nhật số lần xem bài viết

Khi người dùng truy cập website của bạn và chọn một bài viết để đọc bạn muốn theo dõi số lượt bài viết đó được xem bao nhiêu lần thì trong bảng TB_News (lưu các bài viết của bạn) cần có thêm trường NumRead (int), Khi bài viết được xem bạn cần viết thủ tục như sau để vừa truy vấn vừa cập nhật số lần xem

CREATE PROCEDURE sTB_News_SelectByID @idNews int AS BEGIN --Cập nhật số lần xem trước khi hiển thị DECLARE @numread int SELECT @numread=isnull(tn.NumRead,0) FROM TB_News tn WHERE tn.idNews=@idNews UPDATE TB_News SET NumRead = @numread+1 WHERE idNews=@idNews -- Truy vấn hiển thị SELECT tn.idNews, tn.CateID, tn.LanguageCode, tn.UserName, tn.Title, tn.Description, tn.Content, tn.Keyword, tn.Author, tn.CreateDate,tn.NumRead, tn.Status FROM TB_News tn WHERE tn.idNews=@idNews END

Chú ý là các trường và tên bảng trong CSDL của bạn sẽ khác, Và ở ví dụ này mình sẽ cập nhật số lần xem trước khi truy vấn dữ liệu

3. Hàm Trim trong SQL

Trong SQL không có hàm trim nhưng lại có các hàm RTRIM và LTRIM vậy ta có thể kết hợp hai hàm này để có hàm Trim

Create Function fTrim ( @str nvarchar(500) ) Returns nvarchar(500) As
 BEGIN Return RTRIM(LTRIM(@str)) End


Không có nhận xét nào:

Đăng nhận xét

(Chơi cho vui) AIRDROP CHAINGE FINANCE - dự án xây dựng ứng dụng ngân hàng số cho mọi người

 Không hiểu lắm về cái này, tuy nhiên thấy quảng cáo khá nhiều, lại chỉ cung cấp vài thông tin cá nhân (mà mấy ông lớn như facebook với goog...