我正在运行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只获取最后一个值,但它应该包含所有值。
任何想法都将受到赞赏。
由于
答案 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
干杯