2017-01-15 30 views
0

TempFieldという名前のSQL Serverクエリで仮想列を作成しています。SQL Server:仮想列の値に文字列を追加する方法

私は、仮想カラムの各値がfield1カラムと同じ値を持つようにしたいと考えています。PLUSは_suffix文字列を追加します(これはすべての値に対して定数/同じです)。

言い換えれば、XXXはfield1の文字列を表し、_suffixはXXXに追加したい文字列です(追加された文字列はすべての値で同じです)。

SELECT field1, field2, 'XXX_suffix' as TempField 
FROM table1 
+0

をデータベースにテーブルを作成せずにこれを行う方法はありますか?私はこれを「オンザフライで」することを望んでいます。なぜなら、クエリ結果にのみ表示され、どこにも格納されないため、「仮想」列と呼ばれていたからです。 –

+0

ああ、そうだ。謝罪いたします。私はあなたの両方がすでにそれをやっていると思いますよね? –

+1

@CharlieそれはYashveersのクエリがすることです。私のバージョンでは、クエリ時に計算される列が追加されています。 – jpw

答えて

3
 declare @temp as table (FName varchar(100) , LName varchar(100), Email varchar(100)) 

      insert into @temp (FName,LName,Email) values ('A','B','C') 
      insert into @temp (FName,LName,Email) values ('A1','B1','C1') 
      insert into @temp (FName,LName,Email) values ('A2','B2','C2') 
      insert into @temp (FName,LName,Email) values ('A','B','C') 
      insert into @temp (FName,LName,Email) values ('A1','B1','C1') 
      insert into @temp (FName,LName,Email) values ('A1','B1','C2') 


      select FName,LName,Email, (FName +'_suffix') as NewColumn 


      from @temp 
3

あなたがcomputed columnを意味するなら、これはあなたのためにそれを行うだろう。

create table test(
    column1 varchar(20), 
    column2 as column1 + '_suffix' -- this is calculated when needed and not stored 
); 

insert test (column1) values ('adam'),('burt'); 

select * from test; 

-- result: 
column1 column2 
------- ----------- 
adam  adam_suffix 
burt  burt_suffix 
+0

jpw、これは+ '_suffix'が間違った場所にあることを除いて動作します。私はこれだけのように動作するようにしました:column1 + '_suffix' column2。それは似ているようですが、他の方法ではエラーが発生します。 –

+1

@Charlie計算列を実行するときは、前に来る必要がありますが、クエリ時に何かのエイリアスを作成するときは、他の答えと同様に、ASが後に来る必要があります。 – jpw

+0

これはおそらく私の言葉の誤りです。私が必要としたのは別名でした。説明をありがとう。 –

関連する問題