sql - 从字符串中删除前导 0 和字母数字值
问题描述
我在列中有值,即 A1234、B0045、P0123 我需要从字符串中删除字符和前导 0。
我尝试了几件事,我创建了一个函数来处理这个问题,并且在我使用正则表达式的函数中。
PATINDEX('%[^0-9]%', @strText)
我希望将结果存储在下面的列中
A1234 -> 1234
B0045 -> 45
P0123 -> 123
请建议
解决方案
你的模式是错误的。
尝试这个:
DECLARE @strText VARCHAR(20) = 'B0045';
SELECT SUBSTRING(@strText, PATINDEX('%[1-9]%', @strText), LEN(@strText)) AS result
请参阅演示。
如果要更新列:
UPDATE tablename
SET col = SUBSTRING(col, PATINDEX('%[1-9]%', col), LEN(col))
推荐阅读
- react-native - 通过 App 的后台服务 React Native 本地通知
- java - Spring Security:未调用自定义 UserDetailsService(使用 Auth0 身份验证)
- angular - 想要验证 Angular 表单,无论出现什么错误,按钮都会提交
- java - 从 Java 使用 IBM MQ
- django - Centos nginx + django + gunicorn 403 禁止
- php - 最新的 Laravel 和最新的 WAMP 问题
- camera - libuvc_ros 错误:无法启动 [libuvc_camera/camera_node] 类型的节点
- ios - 无法通过命令行在模拟器上安装 .app
- laravel-5 - Vue自定义v-model值从axios get请求获取后不更新值
- java - 使用没有注释的杰克逊将列表序列化为xml?