sqlite 同一个表,把列A的值转换成字符串存入列B

在sqlite 中把列A的值转换成字符串存入列B

首先 sqlite 有一个cast 函数 ,可以强制转换类型,

其次 sqlite 不支持 update from 的写法。所以如果需要把筛选的结果存入某一列的话,可以采用

insert or replace 的方式

如 

insert or replace

table1 (key,column1,column2)

select

table2 (key,column1,column2)

where

table1.key = table2.key

的形式

或者采用

update table1 

set

column1 = (select column from table2 where table2.key = table1.key )

where table1.key = (select key from table2 where table2.key = table1.key)

的形式

第三 update 可以直接把列A的值赋值到列B,但是A列 和 B列的类型要一样 如

update table set A = B

就是把table中列B的值赋给列A。

本人最近所需要的就是类似于update table set A = B 的形式的操作,但是问题在于 列A为字符串,列B为长整型。本来以为需要cast做转换的。但是在多方实验之后发现可以直接拼接字符串。最后实现结果类似于

update table set A = ‘[’||B||']'

的形式

在sqlite 中 ,拼接字符串使用的是  ||  符号。如果使用 + 的话,会默认把前后跟随的参数当作数字处理,如果是字符的话,默认为0

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值