2013-06-06 7 views
6

Ich habe eine Abfrage wie dieseanhängen Text zu jeder Zeile der SQL-SELECT-Abfrage

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

Der Ausgang hierfür ist

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

Nun möchte Ich mag die Abfrage ändern, so dass der Ausgang wird als

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. 

folgt wie kann ich den Standardtext zu jeder Zeile der Ergebnismenge statt Anhängen im Frontend hinzuzufügen. Ich möchte meine Aufgabe vereinfachen, die Datensätze im DataGrid nur als Zusammenfassung anzuzeigen.

+0

Was ist der 'C#' -Teil der Frage? – leppie

+0

Ich möchte nur die Ausgabe im DataGrid so anzeigen, wie es ist ... anstatt das DataSet zu ändern und es an DataGrid zu binden. Ich möchte einfach meine Ausgabe im Backend vereinfachen. –

+0

Nur meine Meinung hier - während Sie dies mit den gegebenen Antworten tun könnten, wären Sie besser dran, die Rohdaten aus der Datenbank zu bekommen und Ihre Nachricht in Ihrem App-Code zu erstellen (entweder Code oder Ihr Grid-Markup). Dieser Nachrichtentyp ist Teil Ihrer Benutzererfahrung und nicht Teil Ihrer Daten. Er gehört daher in Ihren Code für die Benutzererfahrung. Dadurch haben Sie auch die Möglichkeit, Ihre Nachricht später zu ändern, zu lokalisieren, zu formatieren, zu exportieren usw., ohne Ihre Datenzugriffsebene zu berühren. –

Antwort

10

Sie können die Zeichenfolge einfach verketten die folgende verwenden. Sie verwenden die +, um die Zeichenfolge an die type Spalte und die count zu verketten. Beachten Sie, dass die count Anforderungen an einen varchar für diese umgewandelt werden, um zu arbeiten:

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

Siehe SQL Fiddle with Demo

+0

Danke für die sofortige Antwort. –

+0

Danke für die Antwort aber meine Verkettung fügte Leerzeichen hinzu, bevor der hinzugefügte Text hinzugefügt wurde. Eines meiner Ergebnisse könnte "data Die Anzahl der betroffenen Zeilen" zurückgeben, anstatt nur ein Leerzeichen hinzuzufügen. Gibt es einen Weg dahin? –

+0

Macht nichts. Dies geschieht nur bei Verwendung von SQL Server-Manager. –

0

Try this:

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

einfach den Text in Ihrer Anfrage setzen:

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

Vielen Dank Rajesh. –

0

Verwenden Sie diese Abfrage :

UPDATE bookmark_linx SET link_url=(SELECT CONCAT(link_url, '?raw=true')) WHERE link_url LIKE '%dropbox%'