如何在星号之间提取文字?
SELECT substring('QUITAR1 *W01 - 123456/9* QUITAR2 ' from '%#"*_*#"_' for '#')
我需要按照以下方式检索文字:W01 - 123456/9
Postgresql 9.5 .-
答案 0 :(得分:1)
如果您想使用substring with regular,请将星号括在方括号中:
t=# SELECT substring('QUITAR1 *W01 - 123456/9* QUITAR2 ' from '%#"[*]%[*]#"%' for '#');
substring
------------------
*W01 - 123456/9*
(1 row)
所以得到你的想法:
t=# SELECT replace(substring('QUITAR1 *W01 - 123456/9* QUITAR2 ' from '%#"[*]%[*]#"%' for '#'),'*','');
replace
----------------
W01 - 123456/9
(1 row)
我使用替换因为在文本中使用asterix可能会制作掩码