sql - sql字符串拆分为定义的字符数
问题描述
我有一个像'aabbcczx'这样的字符串,我需要将该字符串拆分为2个字符。预期的结果是这样的:
aabbcczx aa
aabbcczx bb
aabbcczx cc
aabbcczx zx
我怎样才能做到这一点?还要考虑字符串的长度逐行变化。
谢谢
解决方案
如果总是 2 个字符:
SELECT A.Val,
CA1.N,
SUBSTRING(A.Val,n,2)
FROM (
VALUES ('aabbcczx')
) AS A(Val)
CROSS
APPLY dbo.GetNums(1,LEN(A.Val)) AS CA1
WHERE CA1.n % 2 = 1;
GetNums 是一个数字表/计数表生成器,您可以在网上找到一些来源。
它将提供每个字符的位置,我们可以在substring
开始位置使用它。where 子句使用MOD
to 所以我们只显示其他的起始位置
推荐阅读
- react-native - Extension host terminated unexpectedly while debugging React-native project
- c - Multiple Definition Error in Static Library Project
- python - TypeError when converting to sparse matrix
- mysql - PHP MyAdmin syntax error in declaring Date variable
- node.js - Maintain a custom order/sort of documents in MongoDB
- python - 向量化操作中的 Pandas if 语句
- c# - Dynamically add values to Adaptive card's drop down
- sql - 在部署后脚本中执行过程 - SSDT
- javascript - 如果 REGEX 表达式的标准与使用 Google 应用程序脚本输入的单元格不匹配,您如何拒绝输入
- git - 如何过滤 git 缓存