SQL này chỉ trả về phần tử Hoạt động đầu tiên. Làm thế nào để tôi chọn tất cả? Nếu tôi xóa [1] trong truy vấn, tôi nhận được lỗi rằng "value() yêu cầu một singleton".Lấy nhiều bản ghi từ cột xml có giá trị() trong SQL Server
DECLARE @myDoc xml
SET @myDoc =
'<Root>
<Activities>
<Activity>This is activity one</Activity>
<Activity>This is activity two</Activity>
<Activity>This is activity three</Activity>
</Activities>
</Root>'
SELECT @myDoc.value('(/Root/Activities/Activity)[1]', 'varchar(100)')
Điều gì sẽ xảy ra nếu thẻ XML xuất hiện nhiều lần và tôi muốn chọn bao nhiêu lần như xuất hiện? http://stackoverflow.com/questions/26426412/how-to-ensure-the-sql-is-able-to-read-all-xml-tag-data – SearchForKnowledge
T là gì và C –
T là bí danh cho bảng dẫn xuất được tạo bởi hàm nút. Hàm nút đó trả về một phần của xml bao gồm tất cả các giá trị tên nút + Hoạt động (và sẽ trả về bất kỳ nút con và giá trị nào nếu có). C là một bí danh cột, trong trường hợp này, nó chia nhỏ xml thành các nút 'Hoạt động' trên mỗi hàng của cột đó. – Davos