我正在选择具有滥用状态列的旧数据库上的数据.状态列中包含多条信息.价值观就像'新联系YYYY','在线YYYY','更新YYYY','撤回YYYY'等等.你可能已经猜到了,YYYY代表了我需要的那一年.
在过去,我做过类似的事情
Rtrim( ltrim( Replace(Replace(Replace(Replace(Replace( …
基本上,用空字符串替换所有文本值,所以唯一仍然存在的是年份.我仍然可以这样做,但我认为这很荒谬,而且必须有更好的方法.
有人知道更好的方法吗?
如果您只想从字符串中提取四位数年份,则可以使用PATINDEX
SELECT SUBSTRING(FieldName, PATINDEX('%[0-9][0-9][0-9][0-9]%', FieldName), 4) FROM TableName