Slik setter du inn et linjeskift i en SQL Server VARCHAR / VARCHAR-streng

Jeg så ikke noen lignende spørsmål om dette emnet, og jeg måtte undersøke dette for noe jeg jobber med akkurat nå. Tenkte jeg ville legge ut svaret på det i tilfelle noen andre hadde det samme spørsmålet.

char(13) er CR. For DOS-/Windows-stil CRLF linjeskift, vil du ha char(13)+char(10), f.eks:

'This is line 1.' + CHAR(13)+CHAR(10) + 'This is line 2.'
Kommentarer (7)
Løsning

Jeg fant svaret her: http://blog.sqlauthority.com/2007/08/22/sql-server-t-sql-script-to-insert-carriage-return-and-new-line-feed-in-code/

Du bare konkatenerer strengen og setter inn en CHAR(13) der du vil ha linjeskift.

Eksempel:

DECLARE @text NVARCHAR(100)
SET @text = 'This is line 1.' + CHAR(13) + 'This is line 2.'
SELECT @text

Dette skriver ut følgende:

Dette er linje 1.
Dette er linje 2.

Kommentarer (7)

Etter en Google ...

Tar koden fra nettstedet:

CREATE TABLE CRLF
    (
        col1 VARCHAR(1000)
    )

INSERT CRLF SELECT 'The quick brown@'
INSERT CRLF SELECT 'fox @jumped'
INSERT CRLF SELECT '@over the '
INSERT CRLF SELECT 'log@'

SELECT col1 FROM CRLF

Returns:

col1
-----------------
The quick brown@
fox @jumped
@over the
log@

(4 row(s) affected)

UPDATE CRLF
SET col1 = REPLACE(col1, '@', CHAR(13))

Ser ut som det kan gjøres ved å erstatte en plassholder med CHAR(13).

Godt spørsmål, har aldri gjort det selv :)

Kommentarer (4)