2011-08-04 64 views
0

我在SQL Server 2008上有一個存儲過程,它將某個值從一個表複製到另一個表中,我需要取3個值並將它們變成第二個(複製到)表中的一個值。在SQL存儲過程中連接值

INSERT INTO copyto (FIELD_ONE, FIELD_TWO, FIELD_THREE, 
      OTHER_DATA1, OTHER_DATA2, OTHER_DATA3, 
      ) 
SELECT LTRIM(RTRIM(OTHER_DATA1)), LTRIM(RTRIM(OTHER_DATA2)), 
     LTRIM(RTRIM(OTHER_DATA3)),LTRIM(RTRIM(FIELD_ONE)), 
     LTRIM(RTRIM(FIELD_TWO)), LTRIM(RTRIM(FIELD_THREE)) 
     FROM copyfrom 

在上面的例子中(這是從存儲過程提取的代碼),我需要連接字段1,2和3

+1

的預檢查,您想要連接字段1,2和3:您想在哪裏插入它們? –

+0

我想插入他們作爲一個提交到COPYTO表中,而不是插入filed1,filed2,filed3單獨地 – Deviland

+2

,但copyto有6個字段! –

回答

1

您只需將它們連接起來,你會在任何/其他大多數編程語言:

select LTRIM(RTRIM(FIELD_ONE)) + LTRIM(RTRIM(FIELD_TWO)) + LTRIM(RTRIM(FIELD_THREE)) 
FROM copyfrom 

這將「返回」一列。

3

請注意,如果至少有一個字段爲空,那麼使用'+'連接字段將不會返回結果。使用ISNULL(myfield,'')COALESCE(myfield,'')作爲對每個

+0

+1考慮連接空值 – Curt

+0

感謝實施:) – Deviland