SQL拆分多规则的字符串分离数字。

简介: --拆分多规则字符串 DECLARE @Codes NVARCHAR(MAX) SET @Codes = '6*BC-007,*BC-016,9*BC-015' --对于*BC-015这种情况,则Qty设置为1 SELECT * FROM dbo.
--拆分多规则字符串
DECLARE @Codes NVARCHAR(MAX)
SET @Codes = '6*BC-007,*BC-016,9*BC-015'
 --对于*BC-015这种情况,则Qty设置为1
SELECT  *
FROM    dbo.fun_split(@Codes, ',')

SELECT  (CASE WHEN CHARINDEX('*', sp.SplitValue) > 0
              THEN SUBSTRING(sp.SplitValue, CHARINDEX('*', sp.SplitValue) + 1,
                             LEN(sp.SplitValue) - CHARINDEX('*', sp.SplitValue))
              ELSE sp.SplitValue
         END) AS 'Code' ,
        (CASE WHEN CHARINDEX('*', sp.SplitValue) > = 2
              THEN SUBSTRING(sp.SplitValue, 1,
                             CHARINDEX('*', sp.SplitValue) - 1)
              ELSE 1
         END) AS 'Qty'
FROM    dbo.fun_split(@Codes, ',') AS sp
       
       
--SELECT  SUBSTRING('8*BC-015', CHARINDEX('*', '8*BC-015') + 1,
--                  LEN('8*BC-015') - CHARINDEX('*', '8*BC-015'))
       

--SELECT CHARINDEX('*','*BC-016') --返回是1

 

目录
相关文章
|
9月前
|
SQL Java 数据库连接
MyBatis动态SQL字符串空值判断,这个细节99%的程序员都踩过坑!
本文深入探讨了MyBatis动态SQL中字符串参数判空的常见问题。通过具体案例分析,对比了`name != null and name != ''`与`name != null and name != ' '`两种写法的差异,指出后者可能引发逻辑混乱。为避免此类问题,建议在后端对参数进行预处理(如trim去空格),简化MyBatis判断逻辑,提升代码健壮性与可维护性。细节决定成败,严谨处理参数判空是写出高质量代码的关键。
1297 0
|
SQL 存储 Serverless
SQL语句拆分时间字段的技巧与方法
在数据库操作中,经常需要处理时间数据
1214 1
|
SQL 安全 网络安全
SQL安装程序规则错误解决方案
在安装SQL Server时,遇到安装程序规则错误是一个比较常见的问题
|
SQL 安全 Windows
SQL安装程序规则错误解析与解决方案
在安装SQL Server时,用户可能会遇到安装程序规则错误的问题,这些错误通常与系统配置、权限设置、依赖项缺失或版本不兼容等因素有关
1061 2
|
SQL XML JSON
在 SQL Server 中使用字符串转义
【8月更文挑战第5天】
1755 7
在 SQL Server 中使用字符串转义
|
SQL Oracle 关系型数据库
SQL语句中的引号使用技巧:正确处理字符串与标识符
在编写SQL语句时,引号的使用是一个基础且重要的环节
2076 0
|
JSON 数据格式 SQL
SQL开发问题之直接使用join方法在处理字符串类型属性时可能会遇到性能问题如何解决
SQL开发问题之直接使用join方法在处理字符串类型属性时可能会遇到性能问题如何解决
159 8
|
SQL 存储 关系型数据库
SQL字符串查询有哪些坑?
本文通过创建一个包含不同格式姓名数据的表格,探讨了MySQL中字符排序规则(Collation)的影响。通过使用不区分大小写和空格的查询条件,文章演示了如何获取所有插入的记录,并解释了排序规则中"_ci"、"_cs"及"_bin"的区别。此外,还强调了在数据处理过程中,应考虑大小写敏感性和字符串前后空格的问题,以防导致统计或比较上的错误。最后,提供了Go语言中处理这类问题的方法,如使用`strings.EqualFold()`进行不区分大小写的字符串比较,以及使用`strings.TrimSpace()`去除字符串两端的空白字符。
222 1
|
SQL 关系型数据库 MySQL
MySQL根据某个字段包含某个字符串或者字段的长度情况更新另一个字段的值,如何写sql
MySQL根据某个字段包含某个字符串或者字段的长度情况更新另一个字段的值,如何写sql
714 0
|
SQL 数据库 Python
【Python】已完美解决:(executemany()方法字符串参数问题)more placeholders in sql than params available
【Python】已完美解决:(executemany()方法字符串参数问题)more placeholders in sql than params available
332 1