2010-10-29 16 views
31

Voglio concatenare le parole "dummy's" e "dock".Come concatenare due stringhe in SQL Server 2005

Come posso concatenarli in SQL Server 2005? Supporta le doppie virgolette?

+1

Vuoi concatenare risultati, o di ingresso/variabili? Hai dei requisiti locali? – RobS

+2

Per informazioni di base come questa, ti consigliamo di consultare la ** documentazione in linea di SQL Server ** - http://technet.microsoft.com/en-us/library/ms130214.aspx –

risposta

28

Prova questo:

DECLARE @COMBINED_STRINGS AS VARCHAR(50); -- Allocate just enough length for the two strings. 

SET @COMBINED_STRINGS = 'rupesh''s' + 'malviya'; 
SELECT @COMBINED_STRINGS; -- Print your combined strings. 

Oppure si può mettere le stringhe in variabili. Tale che:

DECLARE @COMBINED_STRINGS AS VARCHAR(50), 
     @STRING1 AS VARCHAR(20), 
     @STRING2 AS VARCHAR(20); 

SET @STRING1 = 'rupesh''s'; 
SET @STRING2 = 'malviya'; 
SET @COMBINED_STRINGS = @STRING1 + @STRING2; 

SELECT @COMBINED_STRINGS; 

uscita:

rupesh'smalviya

Basta aggiungere uno spazio nella stringa come separatore.

+0

potresti descrivermi come funziona " Rupesh 'di' – NoviceToDotNet

12

quindi se si dispone di una tabella con una riga come:

firstname lastname 
Bill  smith 

si può fare qualcosa di simile

select firstname + ' ' + lastname from thetable 

un d otterrete "Bill Smith"

2

per concatenare due stringhe nel 2008 o prima:

SELECT ISNULL(FirstName, '') + ' ' + ISNULL(SurName, '') 

buono da utilizzare ISNULL perché "String + NULL" vi darà un valore NULL solo

One more cosa: assicurarsi che si concatenazione di stringhe utilizzare in altro modo un operatore di CAST:

SELECT 2 + 3 

Will dare 5

SELECT '2' + '3' 

Will dare 23

0

Ho una soluzione facile che selezionerà dalla tabella del database e consente di fare facilmente.

SELECT b.FirstName + b.LastName FROM tbl_Users b WHERE b.Id='11' 

Si può facilmente aggiungere uno spazio lì, se si tenta

SELECT b.FirstName +' '+ b.LastName FROM Users b WHERE b.Id='23' 

Qui è possibile combinare tanto quanto il vostro tavolo hanno.

2
DECLARE @COMBINED_STRINGS AS VARCHAR(50), 
     @STRING1 AS VARCHAR(20), 
     @STRING2 AS VARCHAR(20); 

SET @STRING1 = 'rupesh''s'; 
SET @STRING2 = 'malviya'; 
SET @COMBINED_STRINGS = @STRING1 + @STRING2; 

SELECT @COMBINED_STRINGS; 

SELECT '2' + '3'; 

Ho digitato questo in un file sql denominato TEST.sql e lo eseguo. Ho ottenuto il seguente out.

+-------------------+ 
| @COMBINED_STRINGS | 
+-------------------+ 
|     0 | 
+-------------------+ 
1 row in set (0.00 sec) 

+-----------+ 
| '2' + '3' | 
+-----------+ 
|   5 | 
+-----------+ 
1 row in set (0.00 sec) 

Dopo aver guardato in questo problema un po 'più ho trovato il migliore e sicuro modo di ordinamento per concatenazione di stringhe in SQL è quello di utilizzare il metodo CONCAT. Così ho apportato le seguenti modifiche nello stesso file.

#DECLARE @COMBINED_STRINGS AS VARCHAR(50), 
#  @STRING1 AS VARCHAR(20), 
#  @STRING2 AS VARCHAR(20); 

SET @STRING1 = 'rupesh''s'; 
SET @STRING2 = 'malviya'; 
#SET @COMBINED_STRINGS = @STRING1 + @STRING2; 
SET @COMBINED_STRINGS = (SELECT CONCAT(@STRING1, @STRING2)); 

SELECT @COMBINED_STRINGS; 

#SELECT '2' + '3'; 
SELECT CONCAT('2','3'); 

e dopo l'esecuzione del file questo è stato l'output.

+-------------------+ 
| @COMBINED_STRINGS | 
+-------------------+ 
| rupesh'smalviya | 
+-------------------+ 
1 row in set (0.00 sec) 

+-----------------+ 
| CONCAT('2','3') | 
+-----------------+ 
| 23    | 
+-----------------+ 
1 row in set (0.00 sec) 

versione di SQL che sto usando è: 14.14