我想創建CAST一個合適的函數來將'字符變化'轉換爲'整數'。任何人都可以建議一個功能我嘗試的一切都失敗了Postgresql。 CREATE CAST'字符變化'爲'整數'
回答
使用此項:
CREATE CAST (varchar AS integer) WITH INOUT [AS IMPLICIT];
它使用涉及的數據類型的輸入/輸出功能。
我假設你想獲得有關隱式轉換的Postgres 8.3的行爲。
示例請參見這個博客條目:
http://petereisentraut.blogspot.com/2008/03/readding-implicit-casts-in-postgresql.html
哦:和bug的軟件供應商,以修復損壞SQL)
編輯
這應該這樣做:
CREATE FUNCTION toint(varchar) RETURNS integer STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT cast($1 as integer);'; CREATE CAST (varchar AS integer) WITH FUNCTION toint(varchar);
是的。我發現,但它缺少int4(varchar) – Simon 2011-01-21 16:02:35
它包含一個整型的強制轉換,如果我沒有弄錯,它與int4相同。 – 2011-01-21 16:10:50
如果您更新SQL以進行顯式強制轉換,則上述函數可用。 但是,如果在'create cast'語句的末尾添加'as implicit',則Postgres將能夠自動計算出您將整數與可以轉換爲整數的varchar進行比較時要執行的操作。
這裏是我的最新聲明,似乎工作「含蓄」:
CREATE FUNCTION toint(varchar)
RETURNS integer
STRICT IMMUTABLE LANGUAGE SQL AS
'SELECT cast($1 as integer);';
CREATE CAST (varchar AS integer) WITH FUNCTION toint(varchar) as Implicit;
我得到了同樣的錯誤。我有一個COLUMN
聲明爲類型字符改變代碼
(20)和一個局部變量
l_code
聲明爲int類型。
我解決了程序
SELECT
...
WHERE
code = l_code AND
..
與
code = cast(l_code as character varying) AND
- 1. Postgres - 字符變化=整數
- 2. 將字符變換爲整數的postgresql列
- 3. Mysql Postgresql cast
- 4. Cast和Sum函數 - PostgreSQL
- 5. PostgreSQL的 - CREATE INDEX
- 6. 將大浮點數存儲爲整數(cast和not cast)
- 7. Postgresql -CREATE FUNCTION
- 8. 爲什麼Ecto的`cast`沒有將整數轉換爲字符串?
- 9. PostgreSQL不能將類型JSON轉換爲字符變化[]
- 10. 鍵中的字符串變爲整數?
- 11. PostgreSQL:錯誤運算符不存在:||字符變化
- 12. 查詢字符串部分的PostgreSQL字符變化列
- 13. 如何在PostgreSQL(9.1)函數中將字符轉換爲整數?
- 14. Rails 3.1。 Heroku PGError:操作符不存在:字符變化=整數
- 15. SQL Cast字符串作爲超鏈接
- 16. CREATE FULLTEXT INDEX PostgreSQL中
- 17. 的PostgreSQL使用變量名作爲字符串字面
- 18. C#Cast整個數組?
- 19. 字符串爲CLOB在PostgreSQL
- 20. 如何在PostgreSQL中用「字符變化」類型清空字段?
- 21. PostgreSQL和加入使用字符變化[]字段
- 22. PostgreSQL:只有CAST列存在
- 23. Django和PostgreSQL - 值類型字符變化太長(512)
- 24. C - 將輸入字符串格式化爲整型變量
- 25. PostgreSQL:將列數據類型從字符變更爲雙精度
- 26. PostgreSQL中的CREATE TABLE AS SELECT
- 27. Java:將字符串變量分解爲字符串和整數變量?
- 28. 將整數格式化爲5位數的字符串
- 29. sails.js -postgresql爲bigint字段返回字符串值而不是整數
- 30. 紅寶石變化類型爲整數
更換您應該解決您的SQL不依賴於內隱蒙上。永遠不要依賴於你的陳述中的暗示表達。 – 2011-01-21 15:54:13
我同意。但是我不能使用現成的軟件。 – Simon 2011-01-21 15:59:06