従業員テーブルがあり、「FullName」と呼ばれる姓と名の連結として評価される3番目の列を追加します。最初の2つの列のいずれかからデータを失うことなく、どのようにそれを達成できますか?
簡単な序文:この回答は、この質問が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);
データベースから選択するときに常にフルネーム列が必要な場合は、テーブル従業員の作成時に計算列を作成できます。
例えば:
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
データベースに本当に新しい列を追加する必要があるのか、必要に応じて「フルネーム」を照会するだけなのかは、目的によって異なります。
その場で表示するには、クエリを実行するだけです
SELECT firstname + ' ' + lastname AS FullName FROM employees
さらに、単純なストアドプロシージャを作成して保存することもできます。
(単一条件の場合、where条件と等しい)
select *
from TABLE_name
where (Column1+Column2) in (11361+280,11365+250)