2011-08-04 133 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