我已經定義了這個功能對所有列執行一個函數,修剪尾隨空白:在選擇查詢
select trim_trailing_whitespace(SomeColumn), count(*) from MyTable group by SomeColumn;
但是:
create or replace function trim_trailing_whitespace(value text) returns text as $$ begin return regexp_replace(value, '\s+$', ''); end; $$ language plpgsql immutable;
它在查詢中使用像這樣的時候正常工作
select trim_trailing_whitespace(*) from MyTable;
:,當我嘗試用通配符來利用它,像這樣失敗第1行:從MyTable中選擇trim_trailing_whitespace(*);
提示:沒有函數匹配給定的名稱和參數類型。您可能需要添加顯式類型轉換。
如何在選擇查詢中的所有列上執行函數?在我的情況下,我想在執行選擇時從每列中刪除尾隨的空白。
或使用row_to_json傳遞數據作爲JSON ...記住,除非你的函數返回一個特定類型的行,JSON很可能是最好的選擇之一,考慮到它如何被使用。 –
這看起來很有希望,但我無法讓它在具有多列的行上工作。 –