数据库表设计的时候,经常会出现一对多的情况,比如标签、明细之类的。

有时,需要在一个查询中,将每个主体的所有标签在一个字段中展示出来,这个时候就可以用 FOR XML PATH 这个语法轻易的实现。

示例代码:

-- 人物
CREATE TABLE man(
id INT NOT NULL DEFAULT 0,
name NVARCHAR(50) NOT NULL DEFAULT ''
)
INSERT INTO man(id,name)
VALUES(1,'肥仔'),(2,'阿呆'),(3,'小新')--人物-标签
CREATE TABLE man_ontag(
id INT NOT NULL DEFAULT 0,
tag NVARCHAR(50) NOT NULL DEFAULT ''
)
INSERT INTO man_ontag(id,tag)
VALUES(1,'帅气'),(1,'搞笑'),(1,'幽默'),(2,'帅气'),(2,'搞笑'),(3,'帅气')SELECT * FROM man
SELECT * FROM man_ontagSELECT a.id,a.name,STUFF((SELECT '、'+ tg.tag FROM dbo.man_ontag tg WHERE a.id= tg.id FOR XML PATH('')),1,1,'') AS tags,STUFF((SELECT ' | '+ tg.tag FROM dbo.man_ontag tg WHERE a.id= tg.id FOR XML PATH('')),1,3,'') AS tags2
FROM man aDROP TABLE man
DROP TABLE man_ontag

效果:

转载于:https://www.cnblogs.com/TurboWay/p/9360775.html

【SQLSERVER】处理一对多标签的语法糖相关推荐

  1. Android学习-Kotlin语言入门-变量、函数、语法糖、when、for-in、主构造函数、单例类、函数式API、集合遍历、隐式Intent、Activity生命周期、四种启动模式、标准函数

    探究java语言的运行机制 变量.函数.语法糖 when条件语句 for循环 主构造函数.次构造函数 数据类和单例类 集合的创建与遍历 集合的函数式API 创建菜单 隐式使用Intent Activi ...

  2. python getattr_详解 Python 的二元算术运算,为什么说减法只是语法糖?

    原题 | Unravelling binary arithmetic operations in Python 作者 | Brett Cannon 译者 | 豌豆花下猫("Python猫&q ...

  3. 三、Vue组件化开发学习笔记——组件化的基本步骤、全局组件和局部组件、父组件和子组件、注册组件的语法糖、模板分离写法、组件的数据存放

    一.什么是组件化? 人面对复杂问题的处理方式: 任何一个人处理信息的逻辑能力都是有限的 所以,当面对一个非常复杂的问题时,我们不太可能一次性搞定一大堆的内容. 但是,我们人有一种天生的能力,就是将问题 ...

  4. vue3 setup写法(语法糖版本)

    vue3.2 版本开始才能使用语法糖! 在 Vue3.0 中变量必须 return 出来, template 中才能使用:而在 Vue3.2 中只需要在 script 标签上加上 setup 属性,无 ...

  5. vue3 setup语法糖与原始写法对比

    只需在script标签中添加setup,组件只需引入不用注册,属性和方法也不用返回,也不用写setup函数,也不用写export default ,甚至是自定义指令也可以在我们的template中自动 ...

  6. vue3+ts+setup语法糖

    1.setup语法糖简介 直接在script标签中添加setup属性就可以直接使用setup语法糖了. 使用setup语法糖后,不用写setup函数:组件只需要引入不需要注册:属性和方法也不需要再返回 ...

  7. uniapp开发:uniapp快速体验vue3.2之setup语法糖,怎么使用怎么爽

    目录 概要 拉开序幕的setup语法糖 生命周期钩子 ref函数与reactive函数对比 computed计算属性 监视(watch.watchEffect) 组件注册 组件传值 provide/i ...

  8. vue3 setup 语法糖的项目实战用法

    vue3.2 之后语法糖 起初 Vue3.0 暴露变量必须 return 出来,template中才能使用: 这样会导致在页面上变量会出现很多次. 很不友好,vue3.2只需在script标签中添加s ...

  9. Vue3.2(语法糖写法) 入门推荐

    前言:距vue3.2发布已一年有余,3.2新增的setup的语法糖写法 作为紧跟时代的前端开发者是必须要会的,多一项技能也就多一项能在时代洪流中争渡的本钱,本文主要是介绍一些vue3.2日常中用到的比 ...

最新文章

  1. 【Java】身份证号码验证
  2. 这个图片转文字功能搞一下?还好这个开源项目救了我!
  3. 存在就不插入_DOM 插入节点和三个Child方法
  4. linux resolv.conf详解
  5. docker学习笔记-为容器配置重启策略
  6. jquery 过滤html代码,jquery – 如何使指令使用过滤的HTML属性?
  7. 链接克隆 完整克隆_深入克隆
  8. P5714 【深基3.例7】肥胖问题--python3实现
  9. Vue动态设置Style属性
  10. nginx RTMP FFmpeg 视频直播
  11. QQ淘宝自动转链转发机器人MkStone京东淘宝转链助手
  12. 土地调查图斑编号_全国第二次土地调查地类分类图示及图斑.doc
  13. 【扩频通信】第五章 扩频信号解扩和解调
  14. 你还不知道Java异或运算符的妙用?
  15. 机器学习与数据挖掘之决策树
  16. 结构化思维(Structured Thinking)
  17. Cookie.js 源码解析
  18. 日常一些办公软件问题
  19. 【报错总结】无法连接Hive的MetaStore数据库
  20. js的slice,splice,split的使用

热门文章

  1. 如何查看磁盘分区情况
  2. cesium加载批量模型
  3. 计算机组装报告目录,计算机组装实验报告(共9篇).doc
  4. linux卸载文件系统什么意思,Linux文件系统的安装和卸载
  5. spring无法连接mysql_初学Spring——连接MySQL数据库的问题和解决
  6. seafile Windows MySQL_seafile4.3.1 + windows 2012 server +mysql 部署记录(3)
  7. php 2个时间查询差几天,PHP怎么计算2个日期差
  8. c语言 int a 5,在C语言中,有如下的写法:int a = 5; int *pa; pa = (a + 1);
  9. 杨凌职业技术学院计算机专业宿舍,杨凌职业技术学院宿舍条件,宿舍图片和环境空调及分配方法...
  10. c语言上机实验作业答案,第十二次C语言上机实验参考答案