oracle如何判断两个字符串包含
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle如何判断两个字符串包含相关的知识,希望对你有一定的参考价值。
请问oracle有没有相关函数 判断字符串 之间的包含关系?
比如 '33,79,12,40' 和 字符串 '12,33,40,79' 是相等的 请问有没有什么办法判断?有没有内置的函数?
oracle如何判断两个字符串包含
函数:
function HasSameChar(str1,str2:string):boolean;
var
i,j:Integer;
blChk:Boolean;
begin
blChk:=False;
for i:=0 to Length(str1) do
begin
for j:=0 to Length(str2) do
begin
if str1[i]=str2[j] then
begin
blChk:=True;
Break;
end;
end;
if blChk then Break;
end;
Result:=blChk;
end;
调用:
var blChk:boolean;
begin
blChk:=HasSameChar(\'hello\',\'world\');
if blChk then showmessage(\'有交集\')
else showmessage(\'没有交集\');
end;
oracle 查询条件中判断两个字段相等时 一个字段为空则跳过
where 语句后面是 t.dataTime=t2.dataTime 如何进行这样的判断:
当t.dataTime或者 t2.dataTime 为空时 则跳过相等判断,如果两个量都有值则进行判断
在线等....急......
--我帮你改下 执行时 先判断全面的条件 就过滤掉了空值 还有‘’ 和null 是不一样的 所以都要过滤
--希望解决了楼主的问题
where t<>'' and t is not nul and t2<>'' and t2 is not null
and t.dataTime=t2.dataTime追问
(关联条件 or (t.dataTime is null or t2.dataTime is null)) 问题这样解决了,不过还是谢谢了
追答你这样写 括号有什么意义呢? 有没有想过?
如果你这样是解决了问题 那么你描述就有问题
果然还是不行哇....问题是你上面那个写法把空值过滤掉了...我联立查询空值也要查出来...
追答我有点搞不清楚楼主的需求了 你能重新描述一下吗?
或者把结果截图给我看也可以
时间都有的时候
存在时间没有的时候
--那就不要那样写 用left join 我不知道你哪个表是主表 如果主表不是t 就换个顺序 你这样就不是---过滤空值了 不明白再问我
select 1 from t left join t2 on
t.dataTime=t2.dataTime
nvl(t.dataTime, sysdate)=nvl(t2.dataTime,sysdate) 这样子的话....如果我t.dataTime 不为空,但是t2.dataTime为空,则t和t2数据匹配就完全不对了啊
追答不太明白你说的,空值本来就应该和具体的值匹配不上啊
追问(关联条件 or (t.dataTime is null or t2.dataTime is null)) 问题这样解决了,不过还是谢谢了
追答楼主要的是全外连接吧,full out jion
参考技术B 你可以where后面限定t.dataTime, t2.dataTime 不为空啊以上是关于oracle如何判断两个字符串包含的主要内容,如果未能解决你的问题,请参考以下文章