2012年1月20日金曜日

OracleでLIMIT、改行コード追加


SQL初心者です・・・。

MySQLで結果の件数を制限するときは「LIMIT」句で制限できたんですが、Oracleはそれ使えないよ・・・(><)

って↓こんな句です。
SELECT * FROM orderdata LIMIT 10;
たとえば、Oracleはこうすると。
SELECT * FROM orderdata WHERE ROWNUM <= 10;
↑これは結果が何でもいい時だそうです(上司談)

細かい理由は
結果に対して10件じゃなくて、該当する上から10件なので他の条件を入れていると結果が意図したものではなくなります。

SELECT
  *
FROM
  (
    SELECT
      id, category, name, ROWNUM line
    FROM
      orderdata
  )
WHERE
  line BETWEEN 1 AND 10
せめて、こうしなくてはいけないと。
みなさんご存知ですもんね・・・。(><)

参考:OracleでのLIMITの記述あれこれ : アシアルブログ


ついでに。
データに改行を入れる必要があったので 、どうするものかと・・・。
また、これも検索して
UPDATE orderdata SET
 TEXT = TEXT||CHR(13) || CHR(10)||'テストですよ',
WHERE
 ID = 'XXXXXX'
こんな形になりました。
キモは
|| CHR(13) || CHR(10) || 
 ここです。

何かのお役にたてば。

Zenback