2017-11-30 9 views
0

テーブルを作成する必要があります。私は名前を持つ名前が他の文字で始まるだけemployeersをしたいが、テーブルを作成する - SQL Oracle

は、私はこのようなsthg書いたKません:

CREATE TABLE others AS select * from employees WHERE last_name no like 'K%'; 

が、私はこのideaようsthgが見つかりましたが、それは

を動作しません。

構文に関するエラーが表示されます。手伝って頂けますか? 2番目の質問:それを書く方法は他にありますか?

+3

** not ** like ... – jarlh

+2

代わりにビューを作成してください。同じデータを複数のテーブルに格納する必要はありません。 – jarlh

+0

エラーはどうなりますか? –

答えて

2

は、私はちょうど文字列関数を使用することをお勧めします。この

CREATE TABLE others AS (SELECT * 
     FROM employees 
     WHERE last_name NOT LIKE 'K%'); 
+0

ありがとうございます!それは動作するはずです。 –

0

を試してみてください。

WHERE SUBSTR(last_name, 1, 1) <> 'K' 

か:あなたはこのためLIKEまたはREGEXP_LIKE()を使用することができますが

WHERE last_name < 'K' or last_name >= 'L' 

、私はこのシンプルなアプローチを好むここでは二つの方法があります。

1

@jarlh氏のコメントでは、ビューは同じ目的を果たしますが、データは2回ではなく1回だけ保存されるため、ディスク領域が節約されます。ビューを

CREATE OR REPLACE VIEW OTHERS AS 
    SELECT * 
    FROM EMPLOYEES 
    WHERE LAST_NAME NOT LIKE 'K%'; 

と指定することができます。

関連する問題