Sql server—— for xml path简单用法(可以按照分组把相同组的列中的不同的值,像字符串一样拼接在一起显示在分组之后的列中。)

时间:2023-03-10 00:44:55
Sql server—— for xml path简单用法(可以按照分组把相同组的列中的不同的值,像字符串一样拼接在一起显示在分组之后的列中。)

aaarticlea/png;base64,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" alt="" />

一个表,然后语句如下

--查询
select
id,
name=stuff((select ','+name from tb where id=t.id for xml path('')),1,1,'')
from
tb t
group by
id

结果如下:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHwAAABeCAIAAABuGOfUAAAFoElEQVR4nO2d326bSBTG56W2muVd9mJN5AfZu2Ii+aav0JvudnFX8mus5D+5sbRt2jTtXqxC3BjbGIu9AJyBYWBg5jDYOZ9QRCZw5pwf48HmA4f4vv/afRNnevfHXzEKWAShdy+EbkAI3YAQugGVQMcFeilC91HwQugGhNANCOf0Hszp74DfvazX654EMZgDQjeQQ9fQHx8fexLEYA4I3UAO/YO+GlvWeKUYBF7nBN33/dzvPGIJ6MUgJqSSQ9fQHx4earaQgF4fBF4qOZRAPxyi7S6EWKLo+O37v7n4y2tKrxfJCsmUtDQMMrLTve1JuN2Fnn0KR+xJss2VTQkhhLofRunKzTbX9c+jZYNCdEIPD1Gw3UMsUXT8ev8tF3/hUurOtzcOJQNvH2z3gXdFqDtvGoRku6cB98UuFi4l1FkkG2cradfUWQj2rczhPKAfj8e7r/cl0Nlq6yoXBimsL1zmpcN0UVhhNyOEkOwASBSiFXp42AQ7iCU6Hr/c3efiz11K3Vnyk21pESS3PhkQ6szLuiiszF1K7D9bFXLm0IOlQ8nA222C3cyhRA/0DKVnkwroTNcb6QOgH/o+PDxtthBLFB1vP9/l4s9Gr+holqykr2+atrQIwqzPHGbaoKMZ21FhZeMNsu1ezxoUohP6bh/+eAoglig6frr9ohhfSxAthWiFvgvXPzYQSxRFHz99VoyvJYiWQnRC3+72j+sniOUQRf98vFWMryWIlkJ0Ql+i5KQT+gFSYRj2JIh6DjqhgzuEhGj5aVatiQuhq0Sslu/73/9bKy6gGUpWobK7AeiEEEXohBC4DCWrUNkdR3rLKlR2x5HesgqV3RtBnw7JcKrSW/1I//0X8utbHOlxHMfxamwlVyc0QBeM9L9/+ynpoh46jvRmwpEei6ALHLsPNrny1By7ujldCrpopE+HzxcWk9HBt5Runv2JbykXCHSBeTQZkCtPzTzqaKTX32SwGlssa2u84luE4c8POtxIfz71EJJC41tOWza/9eMkGOjl5hFjx7RdIEc6MzxTgnxLppcGHWykM+f5lDbfclL/pheBY+cNiP1ezbEDndPZuSSBxrcwx6ZnJ1I4M6wHn0inQ+lpRCQY6GBmGF57iUXQ4cywHox0DQKBDmdx4UiPxZ9IoYQjPTZi1/nn79X5Z3c9vSdBDCaA0A0kgNANJIDQDSQgC132A3KdKtKV76I8iNo1rEbqAjpzKYi9KtRGonQbdfEioLNSLEQm3douLhO6+AG7mxFNH19rbdfVpaQy0odD1kDnW4r95N0NvqVRAtJq5Bzt5yNa/eibjHNUndBqbNWVLIaeoU2PG9+S27rgb/AtDROQVgPo6sRrocsQF9bMkkoY8y25nlhZ4ynX0rVHyjlHtc9fyTtHolQkiQtrLiBOvKBCS66z/ITT5C1CJ9A9mygbdTXQp0P5d6Pi6SX/BqjqLVGzraUSkJaUXfd+kHvhvXIWKnZdaR7sDSq1J7KKOT23f/mtALxdd/ob39IkAWkZsOtU0k2kFuRF2nVq9cbxpV4GALXrlEu+UOigdp1yyRcKHdSuUy75QqGjaqUfukrEamkJDpphBwkgdAMJIHQDCSB0Awk0tusUHzqqSFe+i/qagQ2NTqA/366t+qyXMN0mXbwM6M9SzV0i3fouLhO60K5bXlO1B+ykeLUe6fLPHKkJBLrQOTp95yScc9R+TmcOVzpZ8S161B30YLsP2K8KhfFI9dyCUescqQkGuvirGWcOpc4Swq47ScMtGBcAfeZQMphsgt2G/epIrdA13GzE7JjZrXyLHoFA55+uOzl2Kl5dhV0Xy3tlMidSy7IKJ9JTiw6BQL9ou06DYKCjXQeZANp1BhJAu85AAmjXGUgA7bo2Ujxm+J93DQihGxBCNyCEbkAI3YAQugEhdANC6Ab0P1R/vpADcIxRAAAAAElFTkSuQmCC" alt="" />

分组的时候 注意看清 id=t.id  。错误的情况会把所有的列加起来。非常尴尬。