02/10/2018, 00:19

[DATABASE] Hướng dẫn sử dụng Where trong Store Procedure Sqlserver

Bài viết hôm nay, mình sẽ hướng dẫn các bạn một thủ thuật để sử dụng Where trong Store Procedure trong Sqlserver. Như các bạn biết, trong Store Procedure không thể nào sử dụng được where, chúng ta chỉ sử dụng được where trong: View, hay Table ...

Bài viết hôm nay, mình sẽ hướng dẫn các bạn một thủ thuật để sử dụng Where trong Store Procedure trong Sqlserver.

Như các bạn biết, trong Store Procedure không thể nào sử dụng được where, chúng ta chỉ sử dụng được where trong: View, hay Table Function mà thôi.

Bây giờ, trong làm việc nhóm: Có một bạn đã viết sẵn một Store Procedure rồi, và bây giờ chúng ta muốn tận dụng cái Store đó, và lọc lại giá trị theo điều kiện where thì chúng ta phải làm thế nào.

Để giải quyết vấn đề này rất đơn giản, các bạn chỉ cần tạo một table tạm với các giá trị của Store Procedure trả về, sau đó insert dữ liệu từ Store vào table temp.

Và bây giờ thì chúng ta có thể dễ dàng truy vấn where hay orderby trên bảng table tạm này các bạn nhé.

VD demo:

DROP TABLE IF EXISTS tempdb.dbo.#temptable

CREATE TABLE #temptable ( [madh_hb] varchar(200), [mamh] varchar(50), [homh] nvarchar(255), [tenmh] nvarchar(100), [dauvaoson] bit, [daurason] bit, [kt_son] bit, [mact] varchar(50), [mact2] varchar(10), [sx] float(8), [stt] varchar(10), [tenct] nvarchar(100), [tennl] nvarchar(50), [cao] float(8), [rong] float(8), [dai] float(8), [sl1bo] float(8), [slkh] int, [slcan] float(8), [tonson2] int, [sl_thuchien_son] int, [sl_thieu_son] float(8), [sl_daura_son] int, [slthieu_daura_son] float(8), [dauvaosonuv] bit, [daurasonuv] bit, [sl_dauvao_son2] int, [slthieu_vaoson2] float(8), [sl_daura_son2] int, [slthieu_rason2] float(8), [slbosung] int, [ghichu] nvarchar(200), [tenmathang2] nvarchar(356), [vitri_thuchien_son] nvarchar(50), [vitri_thuchien_son2] nvarchar(50), [vitri_thuchien_son3] nvarchar(50), [vitri_thuchien_son4] nvarchar(50), [tenmathang] nvarchar(356) )

INSERT INTO #temptable
EXEC dbo.pro_data_son @madh_hb='KIN_G5900_05_18'

SELECT * FROM #temptable WHERE sl_thieu_son<0

HAVE FUN heart

Tags: store procedure
0