0
我有一个查询,如下所示:乘法Case语句在caluse
SELECT s.samplename,
s.sampletype,
s.specimancateg,
s.panel,
s.plateid,
s.status,
s.tarikh,
s.sampletype2,
s.geneticanalyzer,
s.positive,
s.negative,
s.allelicladder,
s.kitname,
UD1a.allel,
UD2a.allel
FROM samples s
INNER JOIN ud1 UD1a
ON s.samplename = UD1a.samplename
INNER JOIN ud2 UD2a
ON s.samplename = UD2a.samplename
WHERE (CASE
WHEN (Regexp_like(UD2a.allel, '(.*1|.*2|.*3|.*4){4}', 'n')) THEN (
CASE
WHEN
Regexp_count(UD2a.allel, ',') + 1 != 4 THEN 0
ELSE
1
END)
END) + (CASE
WHEN (Regexp_like(UD1a.allel, '(.*1){1}', 'n')) THEN (
CASE
WHEN
Regexp_count(UD1a.allel, ',') + 1 != 1 THEN 0
ELSE 1
END)
END) >= 1;
如果我有两个样本是这样的:
UD1:
|SampleName|Allel
|F1 |1
|F2 |1,2,3,4
UD2:
|SampleName|Allel
|F1 |1
|F2 |1,2,3,4
这是我的理解,结果应该包含两个样本,但我只得到samlpe F2。为什么?
@toha感谢您的编辑。 – user4274779