2010-10-22 6 views
1

мне нужно группе, даже если есть разница в значениях для столбца путем преобразования в текстовое значение и нуждается в том, что значение текста, которые будут включены в список выбораГруппа по проблеме

Как это possibe?

SELECT col1,col2 
    FROM 
     (
     SELECT col1,col2 FROM table1 
     UNION ALL 
    SELECT col1,col2 FROM table2 
     UNION ALL 
     SELECT col1,col2 FROM table3 

     )tbl 
    GROUP BY tbl.col1 
      ,tbl.col2 

здесь col2 может или не может быть текстовое значение или INT, если это текстовое значение мне нужно преобразовать все другие Col2 Интс в текст и сделать группу по

Смотрите пример:

Table 1 
------- 
A B 3 C 
A B var C 


Table 2 
------- 
UNION ALL 

B B 3 C 
B B var C 


Table 3 
------- 
UNION ALL 

B B 3 C 
B B 3 C 

Result of each table should be 
------- 

Table 1 
------- 
A B var C (since there is a var in the any of the row in that column in that table) 

Table 2 
------- 
B B var C (since there is a var in the any of the row in that column in that table) 

Table 3 
------- 
B B 3 C (here it remains 3 since there is not value call var in any of the row in that column) 

Result 
------ 
A B var C 
B B var C (since there is a var in the any of the row in that column in that table) 
+2

Можете ли вы привести пример? – alex

+0

Как насчет некоторых выборочных данных и некоторых примеров результатов, то, что вам нужно, не является очевидным из вашего попытки запроса. –

+0

Вы используете MS-SQl-Server? Какая версия? – Ice

ответ

0

Это кажется немного легко, может быть, я что-то не хватает? Вы просто хотите сделать CAST на col2?

SELECT col1 
     ,CAST(col2 AS nvarchar(100)) as Col2 
     ...etc 
+0

мне нужно устранить эту coulumn из группы по и должен быть в списке выбора ... что делать? – SmartestVEGA

+0

@SmartestVEGA: Я до сих пор не понимаю. Что означает «исключить этот столбец из группы» и что означает «нужно быть в списке выбора»? Покажите нам пример со значениями и ожидаемым результатом. –

+0

что мне нужно ... предположим, если у меня есть несколько столбцов , и в этом столбце всегда будут отображаться разные значения ... (всегда) и мне нужно преобразовать все эти разные значения в общий текст ... .На ряда и я хочу группу, что ... , как это возможно? – SmartestVEGA

0

TAKE THIS:

SELECT col1,col2 
    FROM 
     (
     SELECT col1,col2 FROM table1 
     UNION ALL 
    SELECT col1,col2 FROM table2 
     UNION ALL 
     SELECT col1,col2 FROM table3 

     )tbl 
where col2 not like '3%' 
    GROUP BY tbl.col1 

Результат выглядеть ваш вопрос:

A B вар C

B B вар C

Смежные вопросы