0

条件を使用してメモ フィールドのレコードから単語を選択する select ステートメントを実行しますWHERE

SQL のフィールドで、メモ フィールドで見つかった単語を教えてほしいと思います。
これどうやってするの?

これは、元の SELECT ステートメントで UPDATE を使用する場合ですか、それとも 1 回のパスでこれを行う方法はありますか? このような初心者の質問をして申し訳ありませんが、私は Oracle を初めて使用します。

SELECT ZOOANIMALS.MOPID,
       ZOOANIMALS.MOPSERVICEIMPACTED "TYPE",
       '          ' AS FOUND_THIS,
       ZOONOTES.MOPNOTE
FROM MOPUSER.ZOOANIMALS
INNER JOIN MOPUSER.ZOONOTES ON ZOOANIMALS.MOPID=ZOONOTES.MOPID
WHERE ZOOANIMALS.mopstart BETWEEN sysdate AND (sysdate+14)
  AND UPPER(ZOOANIMALS.MOPSTATUS) != 'COMPLETE'
  AND UPPER(ZOOANIMALS.MOPSTATUS) != 'CANCELLED'
  AND (ZOOANIMALS.MOPSERVICEIMPACTED LIKE '%FTTT%'
       OR (UPPER(ZOONOTES.MOPNOTE) LIKE ''%AARDVARK%'
           OR UPPER(ZOONOTES.MOPNOTE) LIKE '%ZEBRA%'))
4

1 に答える 1

2

SELECT 句で CASE ステートメントを使用して、どのケースであるかをテストできます。

SELECT ZOOANIMALS.MOPID,
ZOOANIMALS.MOPSERVICEIMPACTED "TYPE",
'          ' as FOUND_THIS,
    ZOONOTES.MOPNOTE,
CASE WHEN ZOONOTES.MOPNOTE LIKE '%FTTT%' THEN 'FTTT WAS TRIGGERED' else '' end,
CASE WHEN UPPER(ZOONOTES.MOPNOTE) LIKE '%AARDVARK%' THEN 'AARDVARK WAS TRIGGERED' else '' end,
CASE WHEN UPPER(ZOONOTES.MOPNOTE) LIKE '%ZEBRA%' THEN 'ZEBRA WAS TRIGGERED' else '' end

FROM MOPUSER.ZOOANIMALS INNER JOIN MOPUSER.ZOONOTES ON ZOOANIMALS.MOPID=ZOONOTES.MOPID
WHERE ZOOANIMALS.mopstart between sysdate and (sysdate+14)
AND UPPER(ZOOANIMALS.MOPSTATUS) != 'COMPLETE'
AND UPPER(ZOOANIMALS.MOPSTATUS) != 'CANCELLED'
AND
(
ZOOANIMALS.MOPSERVICEIMPACTED LIKE '%FTTT%'
    OR
    (
    UPPER(ZOONOTES.MOPNOTE) LIKE ''%AARDVARK%'
    OR UPPER(ZOONOTES.MOPNOTE) LIKE '%ZEBRA%'
 )
 )
于 2013-06-07T15:35:59.643 に答える