【问题标题】:How to replace or convert a SQLite column string value with another string value?如何用另一个字符串值替换或转换 SQLite 列字符串值?
【发布时间】:2021-03-01 21:28:15
【问题描述】:

我正在处理一个 SQLite 查询,其中有一列在每一行中都包含很长的字符串值。该字符串表示不同的交易数据 I.E.交易金额、交易状态(完成/取消)、完成交易的用户等

现在我只想查询这些列以显示哪些事务已完成,即行的字符串包含“state”:“COMPLETED”。如上所述,该值之前和之后是其他字符串数据。例如,randomddata randomdata randomdata randomdata "state":"COMPLETED" randomdata randomdata randomdata。我不想查询列来显示整个字符串值,而是希望查询将该字符串生成/转换为 COMPLETED。

我已经研究了 REPLACE 函数和 TRIM 函数,但是对于这两个函数,我似乎都需要替换特定的字符或值。我不能这样做,因为此特定列中每个单元格的“随机数据”值都不同。我可以使用 LIKE 函数过滤掉带有“COMPLETED”的行,但还没有发现任何转换。

我真的很感谢这里的任何人的帮助,因为我觉得我已经死在水里了:D。

【问题讨论】:

  • 您能否提供一个示例,说明您的数据是什么样的以及您需要达到什么结果?

标签: sqlite


【解决方案1】:

无需替换或修剪列值。
如果您只需要查询表,请使用 CASE 表达式:

SELECT CASE WHEN columnname LIKE '%COMPLETED%' THEN 'COMPLETED' END AS aliasname,
       <other columns>  
FROM tablename

columnname 替换为列的名称,将aliasname 替换为列的别名。

如果只需要包含'COMPLETED' 的行,请在WHERE 子句中设置条件并返回值为'COMPLETED' 的列:

SELECT 'COMPLETED' AS aliasname,
       <other columns>  
FROM tablename
WHERE columnname LIKE '%COMPLETED%'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    • 2020-11-30
    • 2019-05-14
    • 2021-05-27
    • 1970-01-01
    • 2013-12-03
    • 2019-03-15
    相关资源
    最近更新 更多