我想创建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. PostgreSQL的 - CREATE INDEX
- 5. 将大浮点数存储为整数(cast和not cast)
- 6. Postgresql -CREATE FUNCTION
- 7. 为什么Ecto的`cast`没有将整数转换为字符串?
- 8. SQL Cast字符串作为超链接
- 9. Rails 3.1。 Heroku PGError:操作符不存在:字符变化=整数
- 10. C#Cast整个数组?
- 11. 的PostgreSQL使用变量名作为字符串字面
- 12. PostgreSQL和加入使用字符变化[]字段
- 13. 如何在PostgreSQL中用“字符变化”类型清空字段?
- 14. PostgreSQL:只有CAST列存在
- 15. Django和PostgreSQL - 值类型字符变化太长(512)
- 16. C - 将输入字符串格式化为整型变量
- 17. PostgreSQL:将列数据类型从字符变更为双精度
- 18. Java:将字符串变量分解为字符串和整数变量?
- 19. PostgreSQL中的CREATE TABLE AS SELECT
- 20. 将整数格式化为5位数的字符串
- 21. 将数字格式化为字符串时删除整数数字
- 22. 如何格式化整数变量,使其成为前导零字符串
- 23. PostgreSQL - 在用case语句测试整数时返回字符串
- 24. 初始化整个字符数组
- 25. 格式化整数字符串输出
- 26. 为PostgreSQL和PostGIS的变化LC_CTYPE使用
- 27. 检测整数变化
- 28. 指定一个整数变量为整数变量和变化名动态
- 29. PostgreSQL文本数组 - 查询为整数,忽略非数字
- 30. Postgresql中的PLPython&CAST复合数据类型
更换您应该解决您的SQL不依赖于内隐蒙上。永远不要依赖于你的陈述中的暗示表达。 – 2011-01-21 15:54:13
我同意。但是我不能使用现成的软件。 – Simon 2011-01-21 15:59:06