Som*_*Guy 8 sql postgresql varchar types casting
我varchar
在Postgres中有一些大值,我想选择并移动到其他地方.他们将要使用的地方,VARCHAR(4095)
所以我只需要最多4095个字节(我认为这是字节),其中一些变量很大,因此性能优化将是SELECT的截断版本.
我怎样才能做到这一点?
就像是:
SELECT TRUNCATED(my_val, 4095) ...
Run Code Online (Sandbox Code Playgroud)
我不认为这是一个字符长度,它需要一个字节长度?
Erw*_*ter 14
的n
在varchar(n)
是的数目字符(而不是字节).文件:
SQL定义了两种主要的字符类型:
character varying(n)
和character(n)
,其中n
是一个正整数.这两种类型都可以存储长度最多为字符(而不是字节)的字符串.n
大胆强调我的.
"截断"字符串的最简单方法是left()
:
SELECT left(my_val, 4095)
Run Code Online (Sandbox Code Playgroud)
或者你可以投下:
SELECT my_val::varchar(4095)
Run Code Online (Sandbox Code Playgroud)
如果显式地将值转换为
character varying(n)
或character(n)
,那么超长值将被截断为n
字符而不会引发错误.(这也是SQL标准所要求的.)