select a.*,sort(a.hebin),(sort(a.hebin)::int[])[1] as 最小,(sort(a.hebin)::int[])[array_length(a.hebin,1)] as 最大,array_length(a.hebin,1) as 数组数量 from ( select a.合并的值,string_to_array(replace(replace(array_to_string(array (select unnest(array_agg(a.qx))), '...
-- 创建用户表CREATETABLEusers(user_idSERIALPRIMARYKEY,phone_numberVARCHAR(20));-- 插入一些示例数据INSERTINTOusers(phone_number)VALUES('+86-13800138000'),('(010)12345678');-- 使用 regexp_replace 函数清洗电话号码SELECTuser_id,regexp_replace(phone_number,'[^0-9]','','g')AScleaned_phone_nu...
array_agg(...) 将去重后的结果重新组合为数组。 2. 使用 PL/pgSQL 编写自定义函数 如果需要更复杂的去重逻辑,或者想要在函数内部处理数组,可以编写一个自定义的 PL/pgSQL 函数。 sql CREATE OR REPLACE FUNCTION array_unique(input_array ANYARRAY) RETURNS ANYARRAY AS $$ DECLARE unique_array ANYARRAY ...
REPLACE():替换字符串中的部分内容 数组函数:ARRAY_APPEND():向数组添加元素 ARRAY_LENGTH():获取数组长度 聚合函数:AVG():平均值 SUM():总和 MAX() and MIN():最大值和最小值 COUNT():计数 条件函数:CASE:条件语句,类似于SQL的CASE语句。其他常用函数:COALESCE():返回第一个非NULL值。NULLIF():如果两...
CREATE OR REPLACE FUNCTION "NMGNYT"."fun1"(v_title TEXT,v_pageno INT,v_pagesize INT,v_...
replace(string text, from text, to text) text 把字串string里出现地所有子字串from替换成子字串to。 replace('abcdefabcdef', 'cd', 'XX') abXXefabXXef rpad(string text, length int [, fill text]) text 通过填充字符fill(默认为空白),把string填充为长度length。如果string已经比length长则将其截...
replace into,on duplicate key update 改成 on conflict do update 函数映射 普通字段数据类型映射 名称变量标记符号不同(表名,字段名,别名,函数名等等) mysql是`` CREATETABLE`test` ( `id`bigintNOTNULL, `name`varchar(100)DEFAULTNULL, `age`intDEFAULTNULL,PRIMARYKEY (`id`) ...
CREATE OR REPLACE FUNCTION process_array(input_array INTEGER[]) RETURNS VOID AS $$ BEGIN --使用数组元素进行操作,例如插入到表中 FOR i IN 1..array_length(input_array, 1) LOOP INSERT INTO my_table (column1) VALUES (input_array[i]); END LOOP; END; $$ LANGUAGE plpgsql; ``` 在上面的...
pl/pgsql即Procedural Language/ Postgres SQL(过程化sql语言),是Postgresql数据库对sql语句的扩展,可以在pl/pgsql代码块内定义多条sql语句,每条语句以分号结束,代码块由begin开始,end结束,代码块的最后一个end可以不加分号。 DO关键字用来执行一段匿名代码块,即在在程序语言过程中一次性执行的匿名函数。代码块可以...
create or replace function uuid() returns text as $body$ select array_to_string(array(SELECT substring('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopgrstuvwxyz' from (ceil (random()*62))::int for 1) from generate_series(1, 32)),''); ...