加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver 用forxmlpath列拼接字符串

发布时间:2020-12-12 14:24:57 所属栏目:MsSql教程 来源:网络整理
导读:? --?表结构 ? select ?*? from ?t;? go? ? id? 0? 1? 1? 5? ? --?用游标自定义的函数 ? alter ? function ?fn_getName()? returns ? varchar (255)? as ? begin ? ? declare ?@ name ? varchar (50)?,? ????@strname? varchar (255)? declare ??cur? cursor

?

 
 
  1. --?表结构?
  2. select?*?from?t;?
  3. go?
  4. ?
  5. id?
  6. 0?
  7. 1?
  8. 1?
  9. 5?
  10. ?
  11. --?用游标自定义的函数?
  12. alter?function?fn_getName()?
  13. returns?varchar(255)?
  14. as?
  15. begin?
  16. ?
  17. declare?@name?varchar(50)?,?
  18. ????@strname?varchar(255)?
  19. declare??cur?cursor?for?select?id?from?t;?
  20. ?
  21. set?@strname=''?
  22. open?cur??
  23. ?
  24. fetch?next?from?cur?into?@name??
  25. ?
  26. while?@@fetch_status=0?
  27. begin??
  28. ????set?@strname=@strname+@name?
  29. ?
  30. ????fetch?next?from?cur?into?@name??
  31. end?
  32. ?
  33. Close?cur??
  34. return?@strname?
  35. end?
  36. go?
  37. ?
  38. --?结果如下?
  39. select?dbo.fn_getName()?
  40. go?
  41. ?
  42. (无列名)?
  43. 0115?
  44. ?
  45. --?用for?xml?path将列拼字符串?
  46. select?','+cast(id?as?varchar)?from?t??for?xml?path('')?
  47. go?
  48. XML_F52E2B61-18A1-11d1-B105-00805F49916B?
  49. ,1,5?
  50. ?
  51. ?
  52. --?去除最前的逗号?
  53. select?stuff((select?','+cast(id?as?varchar)?from?t??for?xml?path('')),'')??
  54. go?
  55. ?
  56. (无列名)?
  57. 0,5?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读