2010-01-27 16 views
0

說我有這樣的一個表:在SQL中摺疊兩列之一?

|x1|y1| 

|0 |1 | 

|2 |4 | 

|3 |2 | 

我知道我可以做這樣的事情:

SELECT a.x1 AS .., a.y1 AS .., 
     b.x1 AS .., b.y1 AS .., 
     c.x1 AS .., c.y1 AS .., 
     d.x1 AS .., d.y1 AS .. 
FROM xytable a, xytable b, xytable c, xytable d 
WHERE ... 

在我的結果表,但是,我想輸出a.x1和.y1加在一起,作爲一個列中的一個元組。換句話說,我想有:

|c1   |c2   |c3    |c4   | 

(a.x1, a.y1) | (a.x2, a.y2) | (a.x3, a.y3) | (a.x4, a.y4) 

這可能嗎?

+0

告訴我們你正在使用哪種SQL變體:SQL Server?甲骨文? MySQL的? – roufamatic 2010-01-27 05:10:24

+0

這個問題目前還不清楚。也許是一個輸入/輸出表? – 2010-01-27 05:10:57

回答

2

作爲字符串?

你可以,如果你正在使用MySQL這樣做

SELECT '(' + convert(varchar, x1) + ',' + convert(varchar, y1) + ')' as "col" 
+0

這似乎爲我工作,謝謝! – Nikita 2010-01-27 05:14:58

3

,你可以使用CONCAT功能:

SELECT 
    CONCAT('(', a.x1, ', ', a.y1, ')') AS c1 
FROM 
    xytable a, xytable b, xytable c, xytable d 
WHERE 
    ... 

在SQL Server中,你可以用+運算符連接字符串拼接:

SELECT 
    '(' + a.x1 + ', ' + a.y1 + ')' AS c1 
FROM 
    xytable a, xytable b, xytable c, xytable d 
WHERE 
    ...