Tôi có chế độ xem sql, hãy gọi nó là SampleView
, có kết quả có định dạng sau.nhóm tsql bằng cách lấy giá trị cột chữ và số với độ dài tối đa
Id (INT), NameA (VARVHAR(50)), NameB (VARCHAR(50)), ValueA (INT), ValueB (INT)
Tập kết quả của chế độ xem có chứa các hàng có thể giống nhau Id
hay không. Khi có hai hoặc nhiều hàng với Id cùng, tôi muốn để có được một cái gì đó như sau
SELECT
Id,
MAX(NameA),
MAX(NameB),
MAX(ValueA),
MAX(ValueB)
FROM SampleView
GROUP BY Id
ORDER BY Id
Về cột Id
, ValueA
và ValueB
không có bất kỳ vấn đề. Mặt khác, sử dụng MAX
cho cả hai NameA
và NameB
mọi thứ không như mong muốn. Sau khi một số googling và tìm kiếm tôi nhận ra rằng MAX
đã không phải là "mong đợi" hành vi cho các cột chữ số. Nói dự kiến, ý tôi là sử dụng MAX
trong trường hợp của tôi, nó sẽ trả về giá trị NameA
với số ký tự tối đa, MAX(LEN(NameA))
. Tôi phải đề cập đến ở đây rằng không có khả năng cho NameA
để có hai giá trị cho cùng một Id
với cùng độ dài. Điều này có thể làm cho vấn đề dễ giải quyết hơn.
Tôi sử dụng SQL Server 2012 và TSQL
.
Bạn có đề xuất nào về cách tôi có thể giải quyết vấn đề này không?
Cảm ơn bạn rất nhiều vì đã giúp đỡ.
Cảm ơn bạn rất nhiều! Đó là điều tôi muốn :) – Christos