根据其他列的值将一列中的值连接起来

时间:2015-07-14 08:58:03

标签: sql concatenation

我需要根据col1值连接col2值。表如下所示:

Col1    Col2
----------------
1       10520.72
1       10520.71
2       10520.81
2       10520.82
3       10520.91
3       10520.92

我需要查询显示如下:

Col1   Col2
-------------------------
1       10520.71-10520.72
2       10520.81-10520.82
3       10520.91-10520.92

我与Toad合作,因此wm_concatgroup_concatarray_to_string对我不起作用。

请让我知道怎么做。

里纳

3 个答案:

答案 0 :(得分:0)

我记得以前看过类似的东西,不得不稍微编辑它以使用你的浮点数,但现在是:Fiddle现在也测试了十进制数:fiddle

Select m.col1, 
concat = STUFF((
          SELECT '-' + LTRIM(Str(md.col2, 25, 2))
          FROM mytable md
          WHERE m.col1 = md.col1
          FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
FROM mytable m

答案 1 :(得分:0)

这可能适合你

SELECT Col1, CAST(MIN(Col2) AS VARCHAR)+'-'+CAST(MAX(Col2) AS VARCHAR) AS Col2
FROM T_Table
GROUP BY Col1

答案 2 :(得分:0)

这是您的查询...

SELECT DISTINCT         COL1,         CAST(T1COL> T2COL然后T1COL的情况                   ELSE T2COL              END AS VARCHAR(50))+' - '         + CAST(T2COL时的情况> T1COL然后T1COL                     ELSE T2COL                END AS VARCHAR(40)) FROM(SELECT T1.COL1,                     T1.COL2 T1COL,                     T2.COL2 T2COL           从表1 T1                     INNER JOIN表1 T2 ON T1.COl1 = T2.COl1                                             和T1.Col2<> T2.Col2         )TblX;