2013-06-06 27 views
6

Ho una domanda come questoaggiungere testo a ogni riga della SQL query di selezione

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

L'uscita di questo è

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

Ora vorrei cambiare la query in modo che l'uscita sarà la seguente

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. 

come posso aggiungere il testo predefinito per ogni riga del set di risultati invece di aggiungere nel front-end. Vorrei semplificare il mio compito di mostrare solo i record in DataGrid come Riepilogo.

+0

Qual è la parte 'C#' della domanda? – leppie

+0

Voglio solo mostrare l'output in DataGrid così com'è ... invece di alterare il DataSet e legarlo a DataGrid. Voglio semplificare la mia uscita nel back-end. –

+0

Solo la mia opinione qui - mentre si potrebbe fare questo con le risposte date, sarebbe meglio ottenere i dati grezzi dal database e costruire il tuo messaggio nel codice della tua app (sia il codice che il markup della griglia). Questo tipo di messaggio è parte della tua esperienza utente, non parte dei tuoi dati, quindi appartiene al tuo codice di esperienza utente. Ciò ti darà anche la possibilità di cambiare il tuo messaggio più tardi, localizzarlo, riformattarlo, esportarlo, ecc., Senza dover toccare il livello di accesso ai dati. –

risposta

10

Si può facilmente concatenare la stringa usando il seguente. Utilizzerai lo + per concatenare la stringa alla colonna type e allo count. Nota, il count ha bisogno di essere convertiti in un varchar per questo lavoro:

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

Vedi SQL Fiddle with Demo

+0

Grazie per la risposta immediata. –

+0

Grazie per la risposta, tuttavia, la mia concatenazione ha aggiunto degli spazi prima che il testo aggiunto fosse aggiunto. Uno dei miei risultati potrebbe restituire "dati Il numero di righe interessate per" invece di essere solo uno spazio aggiunto. C'è un modo per aggirare questo? –

+0

Non importa. Ciò succede solo quando si utilizza SQL Server Manager. –

0

Prova questo:

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

Basta mettere il testo nella query:

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

Grazie mille Rajesh. –

0

utilizzare questa query :

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