sql怎么查询出两列字段相同的数据(在忽略英文大小写和空格的情况下)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql怎么查询出两列字段相同的数据(在忽略英文大小写和空格的情况下)相关的知识,希望对你有一定的参考价值。
sql怎么查询出两列字段相同的数据(在忽略英文大小写和空格的情况下)如题所示查出两列字段相同的数据,怎么升级一下,忽略英文大小写和空格的情况下 查出两列相同的数据? 以下面的表来举例 要把ID 1 和2 这两个数据查出来
字段值去掉空格和转换成大写或小写之后,再做比较就可以了。
不知道你是什么数据库,以ORACLE数据库举例:
SELECT DISTINCT IN1.*FROM INVENTORY IN1
WHERE EXISTS(
SELECT IN2.*
FROM INVENTORY IN2
WHERE IN1.ID != IN2.ID
AND LOWER(REPLACE(IN1.NAME, ' ')) = LOWER(REPLACE(IN2.NAME, ' '))
AND LOWER(REPLACE(IN1.STD, ' ')) = LOWER(REPLACE(IN2.STD, ' '))
) 参考技术A select t1.* from (select * from Inventory) t1 ,(SELECT * FROM Inventory) t2
where
t1.name = t2.Std
sql 一个字段有多条数据 在一行显示
select b.f_measure from t_quality_qi_special t , t_quality_qi_measure b where t.f_id=b.f_special_sn and t.f_id=4 and b.f_is_active=1 查询出 两条记录
将其结果 显示 为 1224 ,122 不甚感激
DECLARE @result VARCHAR(1024)
SET @result = ''
select @result += b.f_measure+',' from t_quality_qi_special t , t_quality_qi_measure b where t.f_id=b.f_special_sn and t.f_id=4 and b.f_is_active=1
set @result=substring(@result,1,len(@result)-1)
SELECT @result
方法二:游标遍历(这种方法可适用性比较强,但是看起来比较麻烦)
declare @result varchar(1024) ='',@lsf_measure varchar(1024)
declare cursor_test cursor for select b.f_measure
from t_quality_qi_special t , t_quality_qi_measure b
where t.f_id=b.f_special_sn and t.f_id=4 and b.f_is_active=1
open cursor_test
fetch next from cursor_test into @lsf_measure
while @@fetch_status=0
begin
if len(@result)>=1
set @result=@result+','+@lsf_measure
if len(@result)<1
set @result=@lsf_measure
fetch next from cursor_test into @lsf_measure
end
close cursor_test
deallocate cursor_test
select @result 参考技术A DECLARE @str NVARCHAR(1000)
SET @str = ''
select @str += b.f_measure from t_quality_qi_special t , t_quality_qi_measure
b where t.f_id=b.f_special_sn and t.f_id=4 and b.f_is_active=1
SELECT @str
--2008
以上是关于sql怎么查询出两列字段相同的数据(在忽略英文大小写和空格的情况下)的主要内容,如果未能解决你的问题,请参考以下文章