什么是netezza中的STUFF等价物,我试图将行连接到列。我尝试了其他问题中提到的GROUP_CONCAT()/ String_AGG,但我无法同时使用它们。
答案 0 :(得分:0)
我以前从未使用过STUFF,但是看一下这个描述,就没有一个本机的Netezza功能。但是,使用SUBSTR重新创建似乎是一件简单的事情。因为我不是真的使用过STUFF,所以请尝试一下,但试一试。
如果我们举一个使用STUFF的例子:
SELECT STUFF('abcdef', 2, 3, 'ijklmn');
---------
aijklmnef
(1 row(s) affected)
如果我将值和STUFF参数伪装成一个子选择用于演示目的,这里有如何使用SUBSTR。
SELECT
substr(orig_string ,0,start_pos)
|| replace_string ||
substr(orig_string,start_pos+del_length, LENGTH(orig_string)) new_string,
orig_string , replace_string
FROM
( SELECT
'abcdef' orig_string ,
2 start_pos ,
3 del_length ,
'ijklmn' replace_string ) foo
;
NEW_STRING | ORIG_STRING | REPLACE_STRING
------------+-------------+----------------
aijklmnef | abcdef | ijklmn
(1 row)
答案 1 :(得分:0)
您可以使用 GROUP_CONCAT 来获得与 STUFF 类似的结果。 GROUP_CONCAT 函数必须从Netezza Linux环境中的nzlua examples目录安装。
export NZ_PASSWORD='YOURADMINPASSWORD'
cd /nz/extensions/nz/nzlua/examples
../bin/nzl group_concat.nzl
在Netezza SYSTEM 数据库中提供此group_concat之后。作为ADMIN,您可以执行这些命令,使数据库中的所有用户都可以轻松使用它们。
grant execute on system..group_concat(varchar(128)) to public; -- once
create synonym group_concat for system..group_concat; -- in every user database