sql - 删除多余的后缀或将其移至另一列
问题描述
我有这样的桌子
-----------------------------------
| id | col_name | colname_suf |
-----------------------------------
| 1 | textSuff_ix| null |
| 2 | strSuff_ix2| null |
| ... |
-----------------------------------
我的解决方案的主要思想是将后缀移动到另一列。但是后缀和之前的文本可以在已知范围内(text1、text2、str、Suff_ix1、Suff_ix2、Suff_ix3...)。我如何使用 sql 查询修复它?
解决方案
使用left()
,right()
和之类的字符串函数charindex()
来拆分列并更新:
update tablename
set [col_name] = left([col_name], charindex('_', [col_name]) - 1),
[colname_suf] = right([col_name], len([col_name]) - charindex('_', [col_name]))
where [col_name] like '%[_]%';
请参阅演示。
结果:
> id | col_name | colname_suf
> -: | :------- | :----------
> 1 | textSuff | ix
> 2 | strSuff | ix2
推荐阅读
- vuejs2 - 如何使用入门模板修复新创建的 nuxt.js 应用程序的相关模块错误?
- c# - 如何在C#中的单链表的索引处添加元素
- amazon-web-services - lambda 的 /tmp 目录是持续一段时间,还是在每次运行后清除它?
- laravel - 使用 Laravel 和 Guzzle 检索 API 响应
- git - 远程旁边没有写任何东西:在 git
- javascript - mapbox gl js:使用中间渲染步骤作为自定义图层的掩码
- c++ - 使用可变参数模板计算元组大小时出现错误大小
- azure-devops - 在 Azure DEVOPS 中使用变量更改一个名称的多个参数
- javascript - React Native iOS build Error - 检查类的渲染方法
- python - 如何将对象列转换为日期时间?