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 Жыл бұрын
*Cảm ơn anh, lần đầu tiên em biết cái này*
@tv-nguyen35549 ай бұрын
Hello thầy, lâu quá mới học tiếp SQL
@tavanvung80928 ай бұрын
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 Жыл бұрын
/* - 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 Жыл бұрын
cái này hay quá thầy ơi
@HuệNguyễnThị-d9x14 күн бұрын
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?
@ucthienvu11392 ай бұрын
Thầy ơi cho e hỏi là cái web titv sao e ko đăng nhập đc ạ
@34tranbatung34 Жыл бұрын
vẫn chx hiểu làm sao join bảng [NORTHWND].[dbo].[Employees] với cái bảng e_cte
@daotanphat7316 Жыл бұрын
đúng, mình cũng không hiểu
@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 Жыл бұрын
/* - 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 Жыл бұрын
thầy ơi sao lại join được e_cte trong khi thằng e1 đang nằm trong e_cte ạ?
@34tranbatung34 Жыл бұрын
anh live ở đâu vậy ạ
@phanthanhtu44508 ай бұрын
Declare có ý nghĩa là gì vậy anh
@quangvinh55567 ай бұрын
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-sz6bu4 ай бұрын
để 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.