文章摘要
这篇文章主要介绍了PostgreSQL和Greenplum在字符串处理方面的应用。文章内容包括以下核心要点:
1. **字符串去重与拼接**:文章提到使用PostgreSQL的`collect_set`函数实现字符串去重,并通过`array_agg`和`array_to_string`将去重后的结果拼接成字符串。
2. **字符串与数字的转换**:
- 使用`position(str1 in str2)`判断字符串是否为子串。
- 将字符串转换为数字时,建议使用`to_number`或`cast`函数,但需注意数值范围限制。
- 将数字转换为字符串时,使用`cast(number as varchar)`。
3. **经验分享**:文章总结了个人在PostgreSQL字符串处理中的经验,包括字符串拼接、子串判断及数值类型转换的注意事项,并提出了对字符串去重的建议。
总结来看,这篇文章通过实际例子展示了PostgreSQL在字符串处理中的实用技巧,为读者提供了参考价值。
目录postgresql greenplum字符串去重拼接postgresql字符串处理方式关于查找字符串字符串与数字的相互转换总结
pg 、gp 实现 collect_set 效果:
array_agg(DISTINCT $columnName))
array(SELECT DISTINCT ? $columnName ?from $tableName )
array(SELECT DISTINCT ? $columnName ?from $tableName )
字符串拼接 :
array_to_string(array_agg(DISTINCT ), ‘|’)?
select position(‘hello’ in ‘test_sql’)?
output:0
select position(‘test’ in ‘test_sql’)?
output:1
output:0
select position(‘test’ in ‘test_sql’)?
output:1
故可用position(str_1 in str_2) !=0判断str_1是否是str_2的子串。
字符串->数字
to_number(block_id,’999999′)和cast(block_id as numeric),但前一句会限定的数字大小为10的5次方,即过大的数值会出问题,而后一句不会。
数字->字符串
cast(block_id as varchar)将数值型转为字符串型。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:PostgreSQL 使用raise函数打印字符串postgreSQL 数字与字符串类型转换操作解决postgresql 数字转换成字符串前面会多出一个空格的问题
© 版权声明
文章版权归作者所有,未经允许请勿转载。