【问题标题】:Subselect on multiples values with like operator使用 like 运算符对多个值进行子选择
【发布时间】:2021-01-05 10:52:16
【问题描述】:

如何对包含类似运算符的多个值进行子选择?

Table A
ID   Val
1    I33.1
2    I33.3
3    D10.5
4    X10.1
5    D10.1
6    A12.2

Table B
ID  Val   
1   I33.%  
2   D10.%
3   A12.%

我使用“%”构建表 B,以使用 like 运算符从表 A 中获取所有值。

我可以从表 A 中获取 I 值

SELECT * FROM TABLE A WHERE VAL LIKE ('I33.%')

但我构建表 B 以通过一个语句遍历整个表,例如

Select * FROM TABLE A WHERE VAL IN/LIKE(SELECT VAL FROM TABLE B)

但这不起作用。 > 错误:用作表达式的子查询返回多行

两个表都大得多,所以我可以从表 A 中获取所有值和表 B 中的 VAL 吗?

期望的输出

ID  Val
1   I33.1
2   I33.3
3   D10.5
4   D10.1
5   A12.2

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    以下查询应该适用于您的场景

    SELECT t1.*
    FROM TableA t1
    INNER JOIN TableB t2 ON t1.val LIKE t2.val
    

    【讨论】:

    • 谢谢,从未在键中使用过 LIKE。不知道它的工作原理,但这很容易,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 2015-04-12
    • 2017-02-11
    • 1970-01-01
    相关资源
    最近更新 更多