首页 > 数据库 >sql server 行转列、列转行

sql server 行转列、列转行

时间:2023-11-02 10:48:10浏览次数:35  
标签:aa Name bb server 转列 sql ID select string


stuff() 函数用于从源字符串中删除给定长度的字符序列,并从指定的起始索引插入给定的字符序列。
STUFF (source_string, start, length, change_string)

  source_string:字符数据

 start :指定删除和插入的开始位置

 length :指定要删除的字符数

 change_string : 替换start 到 length 的字符数据

多行转成一列

select  ID,
Names=stuff((select ','+bb.Name 
from 
(
select ID , Name
from b_user
) bb
where  bb.ID=aa.ID for xml path('')),1,1,'') 
from   b_user aa
group by ID

select ID, Names=stuff((select ','+bb.Name from ( select ID , Name from b_user ) bb where bb.ID=aa.ID for xml path(''),type).value('.','nvarchar(max)'),1,1,'') 在转行的过程中处理特殊符号 如:& from b_user aa group by ID
一列转多行  
id Name
1 | 张三,李四
转为
id Name
1 | 张三
1 | 李四
SELECT a.[ID],b.[Name] FROM ( SELECT [ID],[Name]=CAST('<v>'+REPLACE([Name],',','</v><v>')+'</v>' AS xml) FROM User) a OUTER APPLY ( SELECT Name=T.C.value('.','nvarchar(50)') FROM a.[Name].nodes('/v') AS T(C) ) b

 

标签:aa,Name,bb,server,转列,sql,ID,select,string
From: https://www.cnblogs.com/chenxinyun-muzi/p/17804819.html

相关文章

  • 解决Mysql删除数据后,ID自增不连续问题
    修复前除了部分数据,导致后续新增的数据,ID自增不连续 解决方案执行下方SQL语句即可修复此问题,mbs_order为需要修复的表名SET@i=0;UPDATE`mbs_order`SET`id`=(@i:=@i+1);ALTERTABLE`mbs_order`AUTO_INCREMENT=0; https://blog.csdn.net/WQGuang/articl......
  • Sql Server使用函数获取拼音码
    CREATEFUNCTIONFun_GetPY(@StrNVARCHAR(4000))RETURNSNVARCHAR(4000)ASBEGINDECLARE@WordNCHAR(1)DECLARE@PYNVARCHAR(4000)SET@PY=''WHILELEN(@Str)>0BEGINSET@Word=LEFT(@Str,1)--如果非汉字字符,返回原字符SET@PY=@PY+(CASEWHENUN......
  • Mysql 几种数据类型
    数值类型类型 大小 范围(有符号) 范围(无符号) 用途TINYINT 1Bytes (-128,127) (0,255) ......
  • linux 导出和导入mysql数据库
    https://blog.csdn.net/qq_35453862/article/details/117742619从华为云导出导入阿里云......
  • MYSQL innoDB CLuster搭建
    机器信息节点主机名IP地址安装软件节点1yanglinux01192.168.222.128mysql,mysql-shell,mysql-router,MGR-Primary节点2yanglinux02192.168.222.132mysql,mysql-shell,mysql-router,MGR-Secondary节点3yanglinux03192.168.222.133mysql,mysql-shell,MGR-Secondary三台机器分别......
  • nginx server_name配置多域名的坑
    问题介绍项目配置了多个域名,如下,php代码中有获取 $_SERVER['SERVER_NAME'] 的值server{ server_namea.demo.comb.demo.com;...}当访问a.demo.com时,其获取的值是符合预期的。但是当访问b.demo.com时,其获取的值还是a.demo.com,导致代码中的判断出现错误......
  • mysql新增插入的时候如何写存储过程
    sql初始化脚本createtableACT_RESULT_LOG(onlineseqidVARCHAR(32),businessidVARCHAR(32),becifnoVARCHAR(32),ivisresultVARCHAR(32),createdbyVARCHAR(32),createddateDATE,updatebyVARCHAR(32),updateddateDAT......
  • 904-907 Prometheus自动发现机制 kube-state-metrics和metrics-server Prometheus监
    一、Prometheus自动发现机制服务发现机制:为了实现自动将被监控目标添加到PermethusPrometheus数据源的配置分为静态配置和动态发现,常见为以下几类:static_configs:静态服务发现,即将配置直接写到配置文件或Configmapfile_sd_config:文件服务器发现,创建一个专门配置target的配置文......
  • mysql 5.7之后新增的json数据类型
    如图,可以直接把json数据存入mysql数据库,读取时也可以根据json中,属性名来读取。加上虚拟列,即可,如下图 ......
  • Server-Worker 模式
    常见并发编程模式,用于构建服务器应用程序和处理并发请求。也称:"Master-Slave"模式或"Producer-Consumer"模式具体实现方式可以有所不同,但思想一致。这种模式的两种角色:服务器(Server)或主控(Master):负责接收、处理和分发任务。监听来自客户端或请求队列的请求,并将这些请求分发......