[英]Convert snake_case to camelCase - Postgres
我基本上需要相反的東西。
我有一個字符串字段,它是一個蛇形標識符。
我想將其轉換為駝峰式大小寫。
在 Postgres 中是否有一種可靠且簡單的方法來做到這一點?
獲取 CamelCase。
如果你特別想要camelCase。
create function lcfirst(word text)
returns text
language plpgsql
immutable
as $$
begin
return lower(left(word, 1)) || right(word, -1);
end;
$$;
create function camel_case(snake_case text)
returns text
language plpgsql
immutable
as $$
begin
return
replace(
initcap(
replace(snake_case, '_', ' ')
),
' ', ''
);
end;
$$;
select lcfirst(camel_case('snek_snek_snek'));
lcfirst
--------------
snekSnekSnek
請參閱其他字符串函數。
使用 INITCAP()
SELECT name, INITCAP(name) FROM customer
結果
JOHN John
marie lisa Marie Lisa
CREATE OR REPLACE FUNCTION snake_to_camel(text)
RETURNS text AS $$
DECLARE
input_text text := $1;
output_text text := '';
last_char_was_underscore boolean := false;
BEGIN
FOR i IN 1..length(input_text) LOOP
IF substring(input_text, i, 1) = '_' THEN
last_char_was_underscore := true;
ELSE
IF last_char_was_underscore THEN
output_text := output_text || upper(substring(input_text, i, 1));
last_char_was_underscore := false;
ELSE
output_text := output_text || lower(substring(input_text, i, 1));
END IF;
END IF;
END LOOP;
RETURN output_text;
END;
$$ LANGUAGE plpgsql;
要使用此函數,請使用 snake case 字符串作為參數調用它,如下所示:
SELECT snake_to_camel('some_snake_case_string');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.