Sql 内部联接忽略在一个列表中有大写字母而在另一个列表中有小写字母的相同值

Sql 内部联接忽略在一个列表中有大写字母而在另一个列表中有小写字母的相同值,sql,postgresql,join,Sql,Postgresql,Join,在PostgreSQL中,在尝试以下内部联接时,我意识到一些假定匹配的条目无法匹配! 当我比较我的两个列表时,我发现失败的列表在一个列表中混合了数字和小写字母,而在另一个列表中它们是数字和大写字母。具体来说-像C6orf70和C9orf156这样的值以这种格式出现在一个列表中,而在另一个列表中则以以下格式出现:C6orf70和C9orf156 因此,内部联接忽略所有此类情况,并且不执行任何匹配。 你知道在加入两个列表时,如何让我的内部连接忽略匹配案例吗?。。。 我在加入“正常”基因方面没有任何问

在PostgreSQL中,在尝试以下内部联接时,我意识到一些假定匹配的条目无法匹配! 当我比较我的两个列表时,我发现失败的列表在一个列表中混合了数字和小写字母,而在另一个列表中它们是数字和大写字母。具体来说-像C6orf70和C9orf156这样的值以这种格式出现在一个列表中,而在另一个列表中则以以下格式出现:C6orf70和C9orf156 因此,内部联接忽略所有此类情况,并且不执行任何匹配。 你知道在加入两个列表时,如何让我的内部连接忽略匹配案例吗?。。。 我在加入“正常”基因方面没有任何问题,例如:HSP6、POLL等。。。这两个列表都是大写格式。 非常感谢

select t1.* ,bvi_d_exp,bvi_r_exp,bvi_exp.bvi_lr_rvd into Patient_bvi_p_exp from (select split_part(id4, '@', 3)genes,* from patient_bvi_p) t1 inner join (select genename,bvi_d_exp,bvi_r_exp,bvi_lr_rvd from geneexpression17p) bvi_exp on t1.genes=bvi_exp.genename 试试这个

select t1.* ,bvi_d_exp,bvi_r_exp,bvi_exp.bvi_lr_rvd
into Patient_bvi_p_exp
from
(select *, LOWER(split_part(id4, '@', 3) ) genes
from patient_bvi_p) t1
inner join 
(select LOWER(genename),bvi_d_exp,bvi_r_exp,bvi_lr_rvd
from geneexpression17p) bvi_exp
on t1.genes=bvi_exp.genename
还是这个

select t1.* ,bvi_d_exp,bvi_r_exp,bvi_exp.bvi_lr_rvd
into Patient_bvi_p_exp
from
(select *, split_part(id4, '@', 3)genes
from patient_bvi_p) t1
inner join 
(select genename,bvi_d_exp,bvi_r_exp,bvi_lr_rvd
from geneexpression17p) bvi_exp
on LOWER(t1.genes)=LOWER(bvi_exp.genename)
如果在加入过程中将t1.genes和bvi_exp.genename转换为小写,则应该可以:

select t1.* ,bvi_d_exp,bvi_r_exp,bvi_exp.bvi_lr_rvd
into Patient_bvi_p_exp
from
(select split_part(id4, '@', 3)genes,*
from patient_bvi_p) t1
inner join 
(select genename,bvi_d_exp,bvi_r_exp,bvi_lr_rvd
from geneexpression17p) bvi_exp
on lower(t1.genes)=lower(bvi_exp.genename)

如果是小写的,只需使用string函数LOWER。。aka on LOWERt1.genes=LOWERbvi_exp.genename很容易复制我的评论我正在写抱歉。我也懂SQL,先生。不像上面那个模仿我们两人的家伙hahaI通常也不会在发布答案之前查看是否有评论。@rofls如果OP会发布一些相关数据,我可以测试它以确保它有效:如果他再回到网站,他会有一个解决方案:@rofls我认为如果在连接条件中或在select中使用较低的值并不重要,因为在这两种情况下都使用相同的字符串。。但我必须测试才能确定