【问题标题】:Clickhouse how to filter string by control charactersClickhouse如何通过控制字符过滤字符串
【发布时间】:2021-05-19 07:33:06
【问题描述】:

在 Clickhouse 中,如何按控制字符过滤字符串,例如制表符\t,换行符\n

SQL Server 有CHAR function 来表达控制字符。另外,Hive 有 rlike 用于可以匹配控制字符的正则表达式。你如何在 CH 中做类似的事情?

我不知道如何在以下命令中正确转义制表符。无论反斜杠的数量是 1、2 还是 4:

$ clickhouse-client --query="SELECT 'Hello\tworld'"
Hello\tworld

$ clickhouse-client --query="SELECT 'Hello\\tworld'"
Hello\tworld

$ clickhouse-client --query="SELECT 'Hello\\\\tworld'"
Hello\\tworld

Clickhouse 版本 21.3.11.1

【问题讨论】:

    标签: clickhouse


    【解决方案1】:

    你看到的是 TSV 格式的输出,所以 \t 转换了两次 \t -> 0x9 -> \t

    clickhouse-client --query="SELECT 'Hello\tworld' col format PrettyCompact"
    ┌─col─────────┐
    │ Hello world │
    └─────────────┘
    

    你可以使用 \t \n \r 和 char(9), char(10), char(13)

    clickhouse-client --query="SELECT 'Hello\tworld' like '%'||char(9)||'%' res format PrettyCompact"
    ┌─res─┐
    │   1 │
    └─────┘
    
    clickhouse-client --query="SELECT 'Hello\tworld' like '%\t%' res format PrettyCompact"
    ┌─res─┐
    │   1 │
    └─────┘
    

    【讨论】:

      猜你喜欢
      • 2022-07-04
      • 1970-01-01
      • 2019-05-02
      • 2010-11-20
      • 2022-01-13
      • 2014-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多