2010-01-27 3 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? Oracle? MySQL? – roufamatic

+0

Этот вопрос непонятен. Возможно, таблица ввода/вывода? –

ответ

2

В качестве символьной строки?

Вы можете сделать что-то вроде

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

Это похоже на работу, спасибо! – Nikita

3

Если вы используете MySQL, вы могли бы использовать 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 
    ... 
Смежные вопросы