我有一个varchar字段,例如'由博客创建16/10/2014#123456更多东西'。
我已删除了这些字符,例如东西(Col,1,patindex('%[0-9]%',Col)-1,'')也取代了#,所以我留下了16/10/2016 123456。
我现在要删除日期。日期可以在123456之前或之后定位。日期可以采用各种格式。
我的最终目标是留下123456。
答案 0 :(得分:1)
试试这个。它假设该数字以“#”为前缀,后跟一个空格(或最后一个)。:
DECLARE @Str VARCHAR(100)
SET @Str = 'Created by blogs 16/10/2014 #123456 more stuff'
SELECT
SUBSTRING(
SUBSTRING(@Str, CHARINDEX('#', @Str) + 1, 999),
1,
CHARINDEX(' ',
SUBSTRING(@Str + ' ',
CHARINDEX('#', @Str) + 1, 999)))
将@Str替换为您的列名。添加了数字最后的错误修正
答案 1 :(得分:0)
试试这个
DECLARE @YourString VARCHAR(100)
SET @YourString = 'Created by blogs 16/10/2014 #123456 more stuff'
SELECT LEFT(RIGHT(@YourString,PATINDEX('%[0-9]%',@YourString)-1),CHARINDEX(' ',RIGHT(@YourString,PATINDEX('%[0-9]%',@YourString)-1)))