STUFF功能相当于netezza

时间:2017-02-28 09:30:49

标签: netezza

什么是netezza中的STUFF等价物,我试图将行连接到列。我尝试了其他问题中提到的GROUP_CONCAT()/ String_AGG,但我无法同时使用它们。

2 个答案:

答案 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