Chào các bạn !
Có một bảng như sau MaHang(MaHang, TenHang)
Trong bảng MaHang có 5 dòng
Select * from MaHang thì được 5 dòng trong bảng
Bây giờ mình muốn trước cột MaHang có thêm cột stt nữa thì viết/làm thế nào ?
Cảm ơn các bạn.
Chào các bạn !
Có một bảng như sau MaHang(MaHang, TenHang)
Trong bảng MaHang có 5 dòng
Select * from MaHang thì được 5 dòng trong bảng
Bây giờ mình muốn trước cột MaHang có thêm cột stt nữa thì viết/làm thế nào ?
Cảm ơn các bạn.
Chào bạn!
mình mạo muội trả lời câu hởi của bạn!
ý của bạn là muốn chèn thêm cột vào trước cột Mã hàng của bạn?
vậy bạn đưa chuột lên nhấp vào cột Ma hàng sau đó chọn Insert chọn Cells thì sẽ ra cột bạn muốn. tương tự thế nếu bạn muốn 2 cột trước cột Mã hàng thì bạn nhấp chuột vào cột vào Insrt chọn Cells thì sẽ ra 2 a cột cho bạn.
nếu bạn chọn dòng thì các làm tương tự vào Insert chọn Rcwr
chúc bạn vui!
Cảm ơn haithon,
mình muốn dùng viết query để đạt ý muốn chứa không phải thêm cột vào bảng.
Chào bạn,
Tôi cũng đang có vướng mắc như bạn.
Khi tạo 1 query, nếu mình muốn có thêm cột tự động đánh số thứ tự trong query đó thì làm thế nào.
Mong các cao thủ chỉ giúp
Có 1 vài cách như sau
- Sử dụng SELECT INTO và IDENTITY
Kết quả trả về sẽ được cho vào 1 bảng tạm
Ví dụ :
Thì sẽ viết lại như sauCode:SELECT Col1, Col2 FROM TableA
Tôi thường dùng cách này với Stored ProcCode:SELECT IDENTITY(INT,1,1) AS STT, Col1, Col2 INTO #TableTemp FROM TableA SELECT * FROM #TableTemp
- Cách 2: Sử dụng ROW_NUMBER() Có trong phiên bản SQL Server 2005 trở về sau
- Cách 3: Sử dụng với trường hợp kêt quả trả ra có 1 cột Unique( thường là khóa chính)
Cách này hơi tốn tài nguyên, do phải truy vấn lồng với từng bản ghi trong kết quả nên tôi không đưa lên
Thường sử dụng cách 1 và 2 là đủ
Bác nào có cách giải quyết tốt hơn xin chia sẻ
Cảm ơn Red Devilic 1, xem như bài toán đã có lời giải.
Hy vọng nhận được sự chia sẻ thêm của thành viên khác.
Có mấy cách thì bạn bày hàng ra hết rồi, còn cách nào nữa?
Tuy nhiên, tôi chỉ thêm ý kiến rằng, dùng ROW_NUMBER() chậm lắm, đặc biệt nếu biểu thức nằm trong OVER() không được tuyển chọn kỹ càng.
Cách dùng INDENTITY() INTO #bảng tạm, nói chung vẫn là cách tốt nhất, an toàn nhất trong hầu hết mọi trường hợp.
Vâng, bác nói đúng.
Khi query sử dụng ROW_NUMBER(), nếu biểu thức trong OVER() đòi hỏi Sắp xếp, mà việc sắp xếp này không cần thiết, hoặc không dùng dc index thì có thể ảnh hưởng đến hiệu năng
Tốt nhất, các bạn nên thử từng trường hợp để chọn ra cách giải quyết tốt nhất với dữ liệu
Bookmarks