列我在Postgres的如下表:SQL查询截断这在上面指定的长度
create table1 (col1 character varying, col2 character varying);
我的表中有如下数据:
col1 col2
Questions Tags Users
Value1 Value2 Val
我想找到COL1的长度和col2,当列1和列2的值的长度超过6时,我想截断它并丢弃剩余的值。即我希望我的决赛桌看起来像下面这样:
col1 col2
Questi Tags U
Value1 Value2
其实我为什么要做到这一点,当我创建table1的指数,然后我收到以下错误的原因:
ERROR: index row size 2744 exceeds maximum 2712 for index "allstrings_string_key" HINT: Values larger than 1/3 of a buffer page cannot be indexed. Consider a function index of an MD5 hash of the value, or use full text indexing.
我知道我可以通过将值导入某种编程语言然后截断值来做到这一点。有什么方法可以在postgres中使用sql查询来达到同样的效果。
坏主意:1. CHAR的语义不同于VARCHAR。 2.丢失数据。 –
OP想要截断数据(即数据将会丢失,就像提供的示例中那样)。 –
我在“DATA”处或附近发生语法错误。非常感谢回复:) –