Khóa Học SQL Server - Bài 32. Cách xây dựng câu truy vấn đệ quy

  Рет қаралды 6,813

TITV

TITV

Күн бұрын

Link khóa học SQL Server: titv.vn/course...
Link tải code: github.com/len...
Clip hướng dẫn chuẩn bị CSDL để thực hành: • Khóa Học SQL Server - ...

Пікірлер: 23
@nguyenthanhnhut4304
@nguyenthanhnhut4304 Жыл бұрын
*Cảm ơn anh, lần đầu tiên em biết cái này*
@tv-nguyen3554
@tv-nguyen3554 9 ай бұрын
Hello thầy, lâu quá mới học tiếp SQL
@tavanvung8092
@tavanvung8092 8 ай бұрын
Hay thực sự luôn thầy ạ cảm ơn kiến thức mà thầy mang lại ạ. join ở đây nhìn khá lú haha mất 1 lúc để hiểu.Có thể coi cái e_cte là bảng chứa các cấp độ level khi nào cần lấy ra lever tiếp theo thì ta nối và kiểm tra với điều kiện là các thành viên sau bị quản lý bởi 1 trong các employId của bảng e_cte.
@unitedkhiet
@unitedkhiet Жыл бұрын
/* - Tính số Fibonacci bằng Đệ Quy trong SQL Server */ WITH Fibonacci (_number, result, SoLanDeQuy) AS ( -- Phần Cơ Sở SELECT 0 AS [_number] ,1 AS [result] ,0 AS [SoLanDeQuy] UNION ALL -- Phần Đệ Quy SELECT f.[result] ,f.[_number]+f.[result] ,f.[SoLanDeQuy]+1 FROM Fibonacci f WHERE f.[SoLanDeQuy] < 5 -- Điều kiện dừng Đệ Quy /* Vì WHERE thực thi trước SELECT, Nên muốn Đệ Quy bao nhiêu lần thì lấy số lần đệ quy làm giá trị của điều kiện dừng Khác với Đệ Quy Tính Giai Thừa (có cột _number tăng mỗi lần 1 đơn vị nên có thể dùng _number để lập điều kiện dừng) Còn Đệ Quy tính dãy số Fibonacci không có cột tăng mỗi lần 1 đơn vị nên phải tự thêm 1 cột SoLanDeQuy dùng để lập điều kiện dừng */ ) SELECT [_number] ,[result] FROM Fibonacci;
@uoclethanh2241
@uoclethanh2241 Жыл бұрын
cái này hay quá thầy ơi
@HuệNguyễnThị-d9x
@HuệNguyễnThị-d9x 14 күн бұрын
Em cảm ơn Thầy ạ ^^ Câu 1: 0 Câu 2: Dạ em có xíu thắc mắc ạ trường hợp này thì thứ tự thực thi sẽ là thực thi phần khởi tạo trước và thực thi đệ quy sau ạ? và sau đó bắt đầu đến join ạ? xong mới hình thành bảng ảo để thực thi truy vấn ạ? vì theo thứ tự bài trước thì hiểu là join sẽ được thực hiện trước nhưng join lại nằm trong bảng c.t.e nhưng khi join mình lại join bảng c.t.e dẫn đến bị kẹt lại ở phần join ạ ^^ và sao mình không lấy full join mà là join ạ Thầy? Câu 3: Dạ Thầy, trường hợp không thực hiện declare thì các bước sau mình không thực hiện được ạ, trường hợp của set thì mình có thể set trực tiếp tại where có được không ạ Thầy?
@ucthienvu1139
@ucthienvu1139 2 ай бұрын
Thầy ơi cho e hỏi là cái web titv sao e ko đăng nhập đc ạ
@34tranbatung34
@34tranbatung34 Жыл бұрын
vẫn chx hiểu làm sao join bảng [NORTHWND].[dbo].[Employees] với cái bảng e_cte
@daotanphat7316
@daotanphat7316 Жыл бұрын
đúng, mình cũng không hiểu
@TrungLe-ty1nd
@TrungLe-ty1nd Жыл бұрын
@@daotanphat7316 Theo mình vì theo thứ tự thực hiện câu truy vấn thì sau Union all : From -> Join -> With với mục đích là để cập nhật giá trị của biến Level và bảng e_cte ở mỗi level.
@unitedkhiet
@unitedkhiet Жыл бұрын
/* - Tính Giai Thừa bằng Đệ Quy trong SQL Server */ WITH GiaiThua (_number, result) AS ( --Phan Co So SELECT 1 AS [_number] ,1 AS [result] UNION ALL --Phan De Quy SELECT gt.[_number]+1 ,gt.[result]*(gt.[_number]+1) FROM GiaiThua gt WHERE gt.[_number] < 5 --Điều kiện dừng GiaiThua. /* Vì WHERE được thực thi trước SELECT, nên Điều kiện dừng = Giai thừa muốn tính, Ví dụ muốn tính giai thừa của 5 thì điều kiện dừng là _number < 5 */ ) SELECT TOP 1 * FROM GiaiThua ORDER BY [result] DESC;
@daotanphat7316
@daotanphat7316 Жыл бұрын
thầy ơi sao lại join được e_cte trong khi thằng e1 đang nằm trong e_cte ạ?
@34tranbatung34
@34tranbatung34 Жыл бұрын
anh live ở đâu vậy ạ
@phanthanhtu4450
@phanthanhtu4450 8 ай бұрын
Declare có ý nghĩa là gì vậy anh
@quangvinh5556
@quangvinh5556 7 ай бұрын
e chưa hiểu cái đoạn join kia là sao ạ, tại sao: join e_cte on e_cte.EmployeeID = e1.ReportsTo ai giải thích giúp e với ạ
@ThangNguyen-sz6bu
@ThangNguyen-sz6bu 4 ай бұрын
để lấy ra những ông được quản lý bởi những ông ở bảng previous cte. Ví dụ lần đầu sẽ lấy ra ông id cao nhất (id = 2 , lv 0) - ở lần union all đầu tiên , sử dụng điều kiện join để lấy những ông được quản lý bởi ông có id = 2 (ví dụ id=1,3 - lv = 1). Tiếp đến lần đệ quy thứ 2 cũng lấy ra những ông thuộc quản lý bởi những id =1,3 - lv =2.
@Mon93-tt
@Mon93-tt Жыл бұрын
không hiểu nhấn phím 2 😥😥
@ngomanh6239
@ngomanh6239 5 ай бұрын
1
@aohoahuyen6080
@aohoahuyen6080 6 ай бұрын
1
@phamductrongk17hcm56
@phamductrongk17hcm56 Жыл бұрын
0
@OrangeD187
@OrangeD187 8 ай бұрын
0
КОГДА БАТЯ ПОЛУЧИЛ ТРАВМУ НА РАБОТЕ😂#shorts
00:59
Thank you 😅
00:15
Nadir Show
Рет қаралды 46 МЛН
C can do this too and it's faster than Python
2:09:48
Tsoding Daily
Рет қаралды 26 М.