sql-server - 在 SQL Server 中将 1 列数据拆分为多列,分隔符为双空格
问题描述
下面是我的记录
13;16;AB BC 13;16;BC CD 13;16;CD DE
我想要以下结果
| Column 1 | Column 2 | column 3 |
|-----------|-----------|-----------|
| 13 | 16 | AB BC |
| 13 | 16 | BC CD |
| 13 | 16 | CD DE |
注意:这里我想用双倍空格分割记录,然后用(;)进行内部分割。
虽然我在这里有三列,但在实践中可能更多。因此,解决方案需要灵活。
解决方案
用Replace
好函数,加上动态代码
DECLARE @X VARCHAR(100)='13;16;AB BC 13;16;BC CD 13;16;CD DE'
DECLARE @SQL VARCHAR(MAX)=''
SELECT @SQL = REPLACE( '
SELECT * FROM (
SELECT '''+REPLACE(@X,' ',''' UNION ALL
SELECT '''),';',''',''') + '''
)AS TAB(COL1,COL2,COL3)
'
EXEC(@SQL)
结果
COL1 COL2 COL3
13 16 AB BC
13 16 BC CD
13 16 CD DE
推荐阅读
- php - PHP & XML:带冒号的 XML 响应的访问属性?
- node.js - 使用 Angular 13 安装 ngrx 商店时出现错误无法解析依赖关系树
- react-native - React Native Map 无法动态渲染多个不同的图像数组标记
- spring-boot - 测试未找到 Springboot Webflux 端点 - 是什么原因造成的?
- pandas - 以特定方式重塑熊猫数据框
- c++ - 可选模板参数组合
- webpack - Webpack 5 编译成功但应用程序不起作用:未捕获的 ReferenceError:未定义导出
- python - 使用 azure 函数从表单数据请求中详细说明并存储在 azure blob 中的多个文件
- pine-script - Pinescript如何在子窗口的左侧放置标签
- javascript - 如何使用 rselenium 单击 javascript“链接”开始下载 excel 文件?