3

テーブル内の行をテーブル内の 1 つの新しい行に結合しようとしています。具体的には、First_Name と Last_name を First_Last に列化します。1行だけでなく、テーブル内のすべてのエントリに対してこれを実行しようとしているため、クエリを実行するのに問題があります。助言がありますか?

現在のコード:

    update Name
set First_Last = (select First_Name + ' ' + Last_Name from Name)

ありがとう、ジャスティン

4

2 に答える 2

10

First_Name各行のとの値を使用して同じテーブルのすべての行を更新するつもりであると仮定するとLast_Name、それは (Sql Server で) 次のように単純です。

update MyTable
    set First_Last = First_Name + ' ' + Last_Name;

他のほとんどの RBDMS では、パイプ||演算子またはCONCAT関数を使用してテキストを結合します。

ほとんどの RDBMS には、計算された (生成されたと呼ばれることもある) 列の概念もあることに注意してください。これにより、派生フィールドを格納する際の冗長性と同期の問題が回避されます。

CREATE TABLE MyTable...
(

   First_Last AS first_name + ' ' + last_name
);
于 2012-08-24T15:48:13.747 に答える
1

RDBMS を指定しませんでしたが、MySQL を使用している場合はCONCAT()関数を使用できます

update Name 
set First_Last = concat(First_Name, ' ', Last_Name)
于 2012-08-24T15:58:41.850 に答える