2017-08-23 22 views
-1

単純なビューからビューを作成しようとしています。SELECT代わりに、私は別のテーブルから自分の製品コード(9000)を取得し、取得するために、それをインクリメントしたいのですが、ヌルのSql Selectでフィールドを増やす方法

SELECT NULL AS productcode 
     , name 
    FROM item; 

productcode name 
90001   Toto 
90002   Titi 
90003   Tata 

はあなたに

をありがとう
+0

あなたは私たちを示した順序を提供して別の列を必要としています。これが意味することは、 'name'列に' Toto Titi Tata'の順序を決定することです。 –

答えて

0

あなたの質問を理解した場合は、次のようなクエリを試すことができます:

CREATE TABLE P (product_code VARCHAR(10), NAME VARCHAR(10)); 
CREATE TABLE U (product_code VARCHAR(10)); 

INSERT INTO P VALUES (NULL,'Toto'); 
INSERT INTO P VALUES (NULL,'Titi'); 
INSERT INTO P VALUES (NULL,'Tata'); 
INSERT INTO P VALUES (1,'Prod1'); 

INSERT INTO U VALUES ('90000'); #THIS MUST HAVE ONLY ONE RECORD! 


SELECT NEW_CODE, NAME 
FROM (
    SELECT P.NAME 
    , @r:= @r+1 R 
    , CONCAT(U.product_code,@r) NEW_CODE 
    FROM P 
    CROSS JOIN (SELECT @r:=0) C 
    CROSS JOIN U 
    WHERE P.product_code IS NULL 
    ) Y; 

出力:

NEW_CODE NAME 
1 900001 Toto 
2 900002 Titi 
3 900003 Tata 
+0

これは唯一のオプションですが、order by節がない場合、このメソッドは信頼できません。もちろんこの逆順のアルファベット順がありますが、これはちょうど偶然かもしれません – Strawberry

+0

@Strawberry:今は何の命令もありません(尋ねられていません)。オーダーを追加するのはとても簡単です(例:名前:ORDER BYでテスト済みです)。 – etsa

+0

私は「信頼できない」とは言っていませんが、「同じ開始値に対しては決定的ではありません」とは言いません。 – etsa

関連する問題