多个with

-- 多个with
with t1(c1,c2) as (select c1, c2 from table),
	 t2(c1,c2) as (select c1, c2 from table)
select * from t1,t2;
-- 当做变量
with t1(c1, c2) as (values('a','b'),('a','b')),
select * from t1;

-- 截取html内容 先取得body内容,再替换转义字符
regexp_replace(
regexp_replace(
regexp_replace(
regexp_replace(
regexp_replace(
	regexp_replace(
		regexp_replace(
			regexp_replace(
				( regexp_match ( html_value, '<\s*body[^>]*>(.*)<\s*/\s*body\s*>' ) ) [ 1 ], '<[^>]*>', '', 'g' )
			,'&nbsp;', ' ', 'g' ) 
			,'&quot;', '"', 'g' ) 
		,'&rdquo;', '”', 'g' ) 
,'&ldquo;', '“', 'g' ) 
,'&gt;', '>', 'g' ) 
,'&lt;', '<', 'g' ) 
,'&amp;', '&', 'g' );

-- 替换标签

regexp_replace($1, '<[^>]*>', '', 'g');

-- 正则报错 http://postgres.cn/docs/12/functions-matching.html
-- 在方括号表达式里,\d、\s和\w会失去它们的外层方括号,而\D、\S和 \W是非法的(也就是说,例如[a-c\d]等效于[a-c[:digit:]]。同样[a-c\D]等效于 [a-c^[:digit:]]的,也是非法的)。
regexp_replace($1, '[\s\S].*', '', 'g');
-- 可以考虑如下方案:
regexp_replace($1, '(\s|\S).*', '', 'g');