Sybase SQL附加到SELECT语句中的变量

时间:2014-10-07 18:39:51

标签: sql sybase sybase-ase

我正在运行Sybase SQL 12.5.1。

我正在尝试将行的值组合成分隔列表。

我期待以下语句返回“1; 2; 3”,但它返回; 3.

CREATE TABLE #temp3(x varchar(5))
INSERT INTO #temp3 values('1')
INSERT INTO #temp3 values('2')
INSERT INTO #temp3 values('3')
SELECT * FROM #temp3


DECLARE @CombinedValues varchar(8000)
SELECT @CombinedValues = COALESCE(@CombinedValues, ';', '') + #temp3.x FROM #temp3
SELECT @CombinedValues
DROP TABLE #temp3

看起来@CombinedValues只获取最后一个值,但它应该包含所有值。

任何想法都将受到赞赏。

由于

2 个答案:

答案 0 :(得分:1)

SET NOCOUNT ON
CREATE TABLE #temp3(x varchar(5))
INSERT INTO #temp3 values('1')
INSERT INTO #temp3 values('2')
INSERT INTO #temp3 values('3')

DECLARE @CombinedValues varchar(8000)=''
SELECT @CombinedValues += x+';' FROM #temp3
PRINT @CombinedValues
DROP TABLE #temp3

答案 1 :(得分:1)

如果以前的答案不起作用(对我不起作用),请在下面尝试:

SET NOCOUNT ON

CREATE TABLE #temp3 (
    x   varchar(5)
)
INSERT INTO #temp3 values('1')
INSERT INTO #temp3 values('2')
INSERT INTO #temp3 values('3')

DECLARE @CombinedValues varchar(8000)

update  #temp3
set     @CombinedValues = @CombinedValues + x + ';'
FROM    #temp3

PRINT @CombinedValues

DROP TABLE #temp3

干杯