2016-04-23 1 views
0
SELECT program.prg_field AS "College" 
     , program.prg_name AS "Major" 
     , professor.pr_id AS "Professor ID" 
     , professor.pr_name AS "Advisor" 
     FROM professor 
INNER JOIN program ON program.prg_field = professor.pr_college 
    WHERE professor.pr_id LIKE '%3%' 
    ORDER BY "College" 
     , "Major" 
     ; 

私の問題は、私がで注文しようとしているpr_id列は次のようになっている(例:ACCT3332) と私は最初のNUMBERを選び、3で始まる番号のコースだけが表示されている場所にフィルターをかけなければなりません。は、私が3000回のレベルのコースのためのすべての顧問を一覧表示し、大学や大手で昇順に私の結果を注文する必要が

 WHERE SUBSTR(professor.pr_id, 5, 1) = '3') 

または(ゴードン・リノフにより示唆されるように):

+0

'pr_id'を持っています4つのアルファベット文字から4つの数字に変わることがありますか? – MT0

答えて

1

あなたはpr_idは、フォーマット4アルファベット文字が含まれている場合は、4桁の数字は、あなたにも行うことができREGEXP_LIKEではなくLIKE

SELECT program.prg_field AS "College" 
     , program.prg_name AS "Major" 
     , professor.pr_id AS "Professor ID" 
     , professor.pr_name AS "Advisor" 
     FROM professor 
INNER JOIN program ON program.prg_field = professor.pr_college 
    WHERE REGEXP_LIKE(professor.pr_id, '^\D+3') 
    ORDER BY "College" 
     , "Major" 
     ; 

を使用することができます

 WHERE professor.pr_id LIKE '____3%' 
+0

それはうまくいった!ありがとうございました! – Deniz

+0

常に4番目の文字であれば、 'like '____ 3%''を使用することもできます。 –

+0

@Denizこれまたは別の回答があなたの問題を解決した場合、質問が終了したことを示す回答を受け入れることができます(回答の横にある投票ボタンの下のチェックマークを使用)。あなたの質問に答えていない場合は、未解決の問題を詳述するコメントを投稿できます。 – MT0

0

let最初にpr_id列の値を指定します。可能な接頭辞の小さなセットがある場合は、OCDE指定の接頭辞で使用されている文字の性質について知っていれば

  • コードの指定に TRANSLATE機能を

    • REPLACE機能:以下のオプションがあります。
    • REGEXP_REPLACE数字があること以外はわからない場合は、

    修正クエリ:

    SELECT program.prg_field AS "College" 
         , program.prg_name AS "Major" 
         , professor.pr_id AS "Professor ID" 
         , professor.pr_name AS "Advisor" 
         FROM professor 
    INNER JOIN program ON program.prg_field = professor.pr_college 
        WHERE TRANSLATE(UPPER(professor.pr_id), '1ABCDEFGHIJKLMNOPQRSTUVWXYZ', '1') LIKE '3%' 
        ORDER BY "College" 
         , "Major" 
         ; 
    

    ...か...

     WHERE REPLACE(...REPLACE(professor.pr_id, 'ACCT'), ...) LIKE '3%' 
    

    ...か...

     WHERE REGEXP_LIKE(professor.pr_id, '^[^0-9]*3') 
    
    関連する問題