sql - 计算字符串开头和结尾的空格(ASCII 码 32)
问题描述
我正在努力解决以下问题。我有一列包含此类数据:
'abbb ccc '
' aaa abbb ccc'
'abbb ccc '
' aaa abbb ccc '
' ccc'
'aaa abbb'
我想计算每个字符串左侧的空格数和右侧的空格数。
解决方案
尝试使用LEN
、LTRIM
和的组合REVERSE
:
SELECT
LEN(col) - LEN(LTRIM(col)) AS num_left,
LEN(REVERSE(col)) - LEN(LTRIM(REVERSE(col))) AS num_right
FROM yourTable;
演示
正如@AaronDietz 在下面的评论中提到的那样,LEN
实际上也修剪了右侧的空白。但LEN
不影响前导空格。为了弥补这一点,我们可以反转字符串,然后使用LTRIM
.
推荐阅读
- kubernetes - 为什么 GKE 节点池不使用区域托管实例组?
- css - CSS3 Grid - 列中文本之间的间距相等,同时保持第一个和最后一个对齐到相反的边缘
- typo3 - TYPO3:如何只获取记录的一部分?
- maven - 更新父版本和 artefactId
- javascript - 最小的 `_app.js` 替换而不改变基本行为
- sql - 如何使用约束编辑器中查询的结果集有条件地执行 SQL 任务?
- c# - 设置只有两个字符的日期时间为毫秒
- c++ - 通过宏扩展调用方法
- python - Python - 你如何添加 \ 和 | 到 str.contains()
- android - proguard 的 google-cloud-translate api 问题中的自动值