2012-02-07 11 views
3

カラムfirstNameとlastNameを持つテーブルがあるとします。 INSERT INTO newTable SELECT firstName, lastName FROM oldTableを実行することはできますが、結果の表に2つの列があるのではなく、2つの列を連結しますか?SQL INSERT INTO SELECT、varcharカラムを結合する

同様に、列を静的な文字列と連結することは可能ですか?

答えて

6

はい、あなたは

SELECT LTRIM(RTRIM(ISNULL(firstName, '') + ' ' + ISNULL(lastName, ''))) FROM oldTable 

にしてくださいこれは、姓と名の列だけでなく、EDIT

の間で静的な文字列 ' 'をconcatinates:firstNameのかlastNameのがnullの場合はそう LTRIM(RTRIM(...))を追加し、結果は、静的 ' '文字列の結果として先頭または末尾のスペースがありません。

+3

'NULL'値に注意をしかし何か他のものと連結...' NULL'は 'NULL' –

+0

パーフェクトをもたらし、私はそれを行うことができるかどうかはわかりませんでしたそしてダレンの頭のおかげで – carpat

+0

@DarrenKoppありがとう、nullsを考慮に入れて編集しました。 –

2

はい、あなたは静的な文字列またはあなたが言うことができる変数がある場合:

DECLARE @variable VARCHAR(255); 

SET @variable = 'some string'; 

INSERT INTO dbo.NewTable(column name) 
SELECT 
    COALESCE(firstname, '') + ' ' + COALESCE(lastname, '') + @variable + 'static string' 
FROM dbo.OldTable;