这是一个MSSQL查询问题。
我尝试在SQL查询中使用子字符串函数来获取列的一部分以创建其他列,但是有没有办法查找字符,而不是告诉它从哪里开始以及需要多少个字符?在下面的数据中,我总是想获取' '之间的数字。然后我想将它们放在名为“Write”和“Prev”的列中。
输入数据:将“8”写入“/铸造::[铸造机研磨机]F26:30”。以前的值为“9.0”
结果:写入= 8上一个= 9.0
这是一个MSSQL查询问题。
我尝试在SQL查询中使用子字符串函数来获取列的一部分以创建其他列,但是有没有办法查找字符,而不是告诉它从哪里开始以及需要多少个字符?在下面的数据中,我总是想获取' '之间的数字。然后我想将它们放在名为“Write”和“Prev”的列中。
输入数据:将“8”写入“/铸造::[铸造机研磨机]F26:30”。以前的值为“9.0”
结果:写入= 8上一个= 9.0
1条答案
按热度按时间aiazj4mn1#
这是一个非常糟糕的地方,但是它很有效(给予我一个合适的正则表达式)。“with”语句是一个通用的表表达式,在这里只是用来设置测试数据,就像一个临时表(一个设置示例数据的好方法)。关键是下面的查询。
选择从模式
"Write '"
+ 7开始的子字符串,返回第一个数字。返回的长度是从模式"' to'"
开始的数字。因此,只要字符串的格式保持不变,就允许使用可变长度的“Write”值。