2013-06-06 6 views
6

У меня есть запрос, как этотAppend текст каждой строки SQL SELECT запрос

SELECT COUNT(ID) 'Records Affected', TYPE FROM MASTER 
GROUP BY TYPE 

Выход для этого

Records Affected   TYPE 
----------------   ---- 
4       F1 
3       F2 
5       F3 

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

Records Affected 
---------------- 
The number of records affected for F1 is : 4 
The number of records affected for F2 is : 3 
The number of records affected for F3 is : 5 

"The number of records affected for " + TYPE + " is : " + COUNT. 

Как я могу добавить текст по умолчанию для каждой строки результирующего набора вместо добавления в передней части. Я хотел бы упростить свою задачу, просто показывая записи в DataGrid как Summary.

+0

Что такое 'C#' часть вопроса? – leppie

+0

Я просто хочу показать вывод в DataGrid, поскольку он ... вместо того, чтобы изменять DataSet и привязывать его к DataGrid. Я хочу просто упростить свой выход в бэкэнд. –

+0

Просто мое мнение здесь - пока вы могли бы сделать это с помощью приведенных ответов, вам было бы лучше получать необработанные данные из базы данных и создавать ваше сообщение в коде приложения (либо в коде, либо в виде разметки сетки). Этот тип сообщений является частью вашего пользовательского интерфейса, а не частью ваших данных, поэтому он принадлежит вашему коду пользователя. Это также даст вам возможность позже поменять ваше сообщение, локализовать его, переформатировать, экспортировать и т. Д., Без необходимости касаться вашего уровня доступа к данным. –

ответ

10

Вы можете легко сцепить строки, используя следующее. Вы будете использовать +, чтобы объединить строку с колонкой type и count. Обратите внимание, что count должен быть преобразован в varchar для этой работы:

SELECT 
    'The number of records affected for '+ type + 
    ' is : '+ cast(COUNT(ID) as varchar(50)) as'Records Affected' 
FROM yt 
GROUP BY TYPE; 

См SQL Fiddle with Demo

+0

Спасибо за мгновенный ответ. –

+0

Спасибо за ответ, но моя конкатенация добавила пробелы перед добавлением добавленного текста. Один из моих результатов может вернуть «данные Число строк, на которые повлияли» вместо того, чтобы было добавлено только одно пространство. Есть ли способ обойти это? –

+0

Ничего. Это происходит только при использовании SQL Server Manager. –

0

Попробуйте это:

SELECT 'The number of records affected for ' + TYPE + ' is : ' + 
STR(X.[Records Affected]) AS [Records Affected] 
FROM (SELECT COUNT(ID) 'Records Affected', TYPE FROM MASTER GROUP BY TYPE) X 
1

Просто поместите текст в запросе:

SELECT 'The number of records affected for ' + TYPE + ' is : ' + CAST(COUNT(ID) as VARCHAR(20)) AS 'Records Affected' FROM MASTER 
GROUP BY TYPE 
1
SELECT "The number of records affected for " + TYPE + " is : " + COUNT(ID) AS [Records Affected] 
FROM Master 
GROUP BY TYPE 
+0

Большое спасибо Раджешу. –

0

использовать этот запрос :

UPDATE bookmark_linx SET link_url=(SELECT CONCAT(link_url, '?raw=true')) WHERE link_url LIKE '%dropbox%' 
Смежные вопросы