SELECT或我是否需要更新

时间:2013-06-07 15:29:35

标签: sql oracle select

我运行一个select语句,使用WHERE条件从注释字段中选择记录中的单词。

我希望SQL中的一个字段告诉我它在note字段中找到了哪个单词 我怎么能这样做?

这是在原始SELECT语句上使用UPDATE还是有一种方法通过一次传递?我很抱歉问这样一个新手问题,但我是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%'))

1 个答案:

答案 0 :(得分: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%'
 )
 )