postgres中的子串

时间:2016-06-01 22:16:41

标签: sql postgresql

我在Postgres中有两个表,我试图比较,并且无法从一个子串访问子串并将其与另一个子串进行比较。我对Postgres很新(特别是通过PGadmin的SQL),所以所有的建议都很有帮助。

我正在尝试计算两个表之间相似的ID号的数量,但由于连接的FIPS代码,一组数字比另一组长。如果我不需要,我不想修剪数据,所以现在我有:

select count(ID_A) from server.table1
 where(ID_A is not null
 and ID_A in (select (substring(ID_B from 3 for 8) from server.table 2)))

1 个答案:

答案 0 :(得分:0)

我会回答,因为我对你的查询有所了解。如果是拼写错误,我会在您更新原始问题后将其删除。

select count(ID_A) 
  from server.table1
 where (     ID_A is not null
         and ID_A in (select (substring(ID_B from 3 for 8) 
                        from server.table2)
                     )                    ^
       )                                  |_ This parenthesis is in wrong place

请注意,它是缺少的括号或过多的括号。

正确的查询是:

select count(ID_A) 
  from server.table1
 where ID_A is not null
   and ID_A in (select substring(ID_B from 3 for 8) 
                  from server.table2)                    

正如@ZiggyCrueltyfreeZeitgeister指出的那样,你实际上并不需要ID_A is not null但是只有当你没有空值时才会这样做。