如何在varchar中查找5位数字?

Bob*_*Guy 2 sql sql-server

基本上我只需要得到一个由空格分隔的 5 位数字。5 位数字可以位于 varchar 中的任何位置。

示例:我有一个 varchar 列,其中包含 SQL 2008 表中的各种数据

travel visa 34322 LLL001
Coffee 34332 Jakarta 
FDR001 34312 Taxi cost cash
taxi cash 34321
34556 eating dinner with customer
eating dinner 34256 with customer
visa cost 34221 REF773716637366
Run Code Online (Sandbox Code Playgroud)

5 位数字可以在任何地方用空格分隔,最好提取什么?

34322
34332
34312
34556
34256
34221
Run Code Online (Sandbox Code Playgroud)

谢谢

像这样的行应该返回空白

Visa refNbr 778738878
Run Code Online (Sandbox Code Playgroud)

尝试了以下但还没有运气

SELECT  pjtran.tr_comment 
,substring(pjtran.tr_comment,PATINDEX('%[0-9]%',pjtran.tr_comment),5)
,Left(SubString(pjtran.tr_comment, PatIndex('%[0-9.-]%', pjtran.tr_comment), 50),PatIndex('%[^0-9.-]%', SubString(pjtran.tr_comment, PatIndex('%[0-9.-]%', pjtran.tr_comment), 50) + 'X')-1)
,len(pjtran.tr_comment)-len(replace(pjtran.tr_comment,' ',''))
Run Code Online (Sandbox Code Playgroud)

我想我需要使用计算 varchar 中的空格数的组合。以及上述内容。但我不知道该怎么做

Gor*_*off 5

像这样的事情怎么样?

 select substring(tr_comment, patindex('%[0-9][0-9][0-9][0-9][0-9] %', tr_comment), 5) as zip5
Run Code Online (Sandbox Code Playgroud)

如果您想考虑它可能位于字符串的末尾:

 select substring(tr_comment, patindex('%[0-9][0-9][0-9][0-9][0-9] %', tr_comment + ' '), 5
                 ) as zip5
Run Code Online (Sandbox Code Playgroud)