web-dev-qa-db-ja.com

他の2つのVarchar列の連結を表す列を追加する

従業員テーブルがあり、「FullName」と呼ばれる姓と名の連結として評価される3番目の列を追加します。最初の2つの列のいずれかからデータを失うことなく、どのようにそれを達成できますか?

19
Stampin Stephie

簡単な序文:この回答は、この質問がSQL Serverに関連していたもともと間違っていたタグに基づいていました。 Oracle SQL Developerでの有効性についてはもう知りません。

ALTER TABLE Employees ADD FullName AS (FirstName + ' ' + LastName)

実際には、SELECTでその操作を行うことをお勧めします。それは個人的な好みですが、エンドクエリで行うことは、余分な計算された列を格納するよりも、少しきれいで読みやすく、保守が容易だと思う傾向があります。

編集:

これは最終的に答えとして見つかり、OPによってこの投稿に対するコメントとしてリストされました。 Oracle Sql Databaseの適切な構文は次のとおりです。

ALTER TABLE emps MODIFY (FULL_NAME VARCHAR2(50) GENERATED ALWAYS AS (first_name || ' ' || last_name) VIRTUAL); 
14
Matthew Haugen

データベースから選択するときに常にフルネーム列が必要な場合は、テーブル従業員の作成時に計算列を作成できます。

例えば:

CREATE TABLE Employee
(
  FirstName VARCHAR(20),
  LastName VARCHAR(20),
  FullName AS CONCAT(FirstName,' ',LastName)
)

INSERT INTO Employee VALUES ('Rocky','Jeo')

SELECT * FROM Employee 

  Output:

  FirstName  LastName  FullName
  Rocky      Jeo       Rocky Jeo
4
mansi

データベースに本当に新しい列を追加する必要があるのか​​、必要に応じて「フルネーム」を照会するだけなのかは、目的によって異なります。

その場で表示するには、クエリを実行するだけです

SELECT firstname + ' ' + lastname AS FullName FROM employees

さらに、単純なストアドプロシージャを作成して保存することもできます。

1
Jacky

(単一条件の場合、where条件と等しい)

select * 
from TABLE_name 
where (Column1+Column2) in (11361+280,11365+250)
0
Mohammed Ali