2013-09-16 18 views

risposta

16

La prima differenza che mi viene in mente è la quantità di spazi. Diciamo che ti piacerebbe scrivere 20 spazi, una parola e altri 20 spazi:

'     abcd     ' 

Quanti spazi ci sono? Molto più utile:

SPACE(20)+'abcd'+SPACE(20) 

no?

ci sono molti casi in cui si modifica il codice di generazione di query SQL di qualcuno. È più che probabile che elimini uno spazio da qualche parte e non sia possibile eseguirne il debug. Non c'è alcun problema di questo tipo se viene utilizzata la funzione SPACE.

+2

per non parlare, è possibile aggiungere gli spazi fino alla lunghezza massima di un varchar normale in T-SQL (8000) – penguat

+0

Per includere spazi nei dati Unicode, o per tornare più di 8000 spazi di carattere, l'uso REPLICATE invece di spazio. – Seymour

5

Il suo più chiaro per vedere SPACE (50) rispetto a

50 spazi ..

"            " 

Questo è la mia ragione.

+0

Vedo gli altri postati come ho detto più o meno alla stessa ora. e – Daniel

4

No, non c'è nessuna differenza.

Il punto della funzione SPACE arriva quando ci sono più spazi (diciamo 20) o si desidera rendere libero il numero di spazi al lettore.

16

Sono d'accordo con gli altri che hanno risposto presente che lo spazio() è utile per indicare il numero di spazi utilizzati o per aggiungere un gran numero di spazi.

utilizzando lo spazio può anche essere più semplice se si desidera generare un file di formato larghezza fissa - è possibile utilizzare la lunghezza dei dati come parametro per esempio

SELECT 
    name + SPACE(20-LEN(name)) 
FROM 
    SomeTableWithNames