2016-04-26 188 views
0

我有一个查询,它从numbertable给number1,number2。以特定格式输出SQL查询结果

Select number1, number2 from numbertable where number2 in(1,2,3) 

结果给出:

number1 number2 
1  1 
2  2 

但我想在下面的格式结果:

(1,1) 
(2,2) 

我试着用下面的代码,但我失去了一些东西

Select @number1 = number1, @number2 = @number2 from numbertable 
where number2 in(1,2,3) 
+2

我建议你应该之外格式化数据查询。你得到原始数据,让你的观点,服务做格式化工作。 – richerlariviere

+0

我同意@richerlariviere。当你想要另一种格式的数据时会发生什么?如果格式化逻辑被隐藏在查询中,您将不得不重新提取格式化逻辑,解析当前格式或使用不同的输出格式编写单独的查询。 –

回答

6

SQL SERVER 2012+,您可以使用CONCAT

SELECT Concat('(', number1, ',', number2, ')') 
FROM numbertable 
WHERE number2 IN(1, 2, 3) 

否则你使用+来连接字符串

SELECT '(' + Cast(number1 AS VARCHAR(10)) + ',' + Cast(number2 AS VARCHAR(10)) + ')' 
FROM numbertable 
WHERE number2 IN(1, 2, 3) 

作为一个方面说明,考虑在应用端做这个