0

重複の可能性:
SQLに「LIKE」と「IN」の組み合わせはありますか?

このような同じクエリでlikeとinconditionを使用できますか

    select inticap(last_name),length(last_name) from employees
    where last_name in(like '%J%',like '%A%',like '%M%');

OR 

  select inticap(last_name),length(last_name) from employees
where last_name like in( '%J%', '%A%',l'%M%');

私はそれがうまくいかないことを知っています。ここでは、姓の大文字の頭文字と姓の長さを表示し、名前をアルファベットの「A」、「J」、「M」で表示したいと思います。私を助けてください

4

2 に答える 2

3
 select inticap(last_name),length(last_name) from employees
where last_name like '%J%' OR last_name like '%A%' OR last_name '%M%';
于 2012-06-08T06:09:02.347 に答える
3

前述したように、直接結合することはできませLIKEIN

ここに1つの厄介なオプションがあります:

SELECT INITCAP(last_name)
,      LENGTH(last_name)
FROM   employees
WHERE  +1 IN (SIGN(INSTR(last_name,'J'))
          ,   SIGN(INSTR(last_name,'A'))
          ,   SIGN(INSTR(last_name,'M')))

または、少なくとも 10g を使用している場合は、正規表現を使用できます。

SELECT INITCAP(last_name)
,      LENGTH(last_name)
FROM   employees
WHERE  REGEXP_LIKE(last_name,'(J|A|M)')

...しかし、通常、正規表現は、さまざまな SQL 関数よりも CPU を集中的に使用します。

于 2012-06-08T13:48:33.620 に答える