Ako vložiť zalomenie riadku do reťazca VARCHAR/NVARCHAR servera SQL Server

Nevidel som žiadne podobné otázky na túto tému a musel som to preskúmať kvôli niečomu, na čom práve pracujem. Myslel som, že zverejním odpoveď pre prípad, že by mal niekto iný rovnakú otázku.

char(13) je CR. Pre riadkové zlomy CRLF v štýle DOS/Windows je potrebné použiť char(13)+char(10), napr:

'This is line 1.' + CHAR(13)+CHAR(10) + 'This is line 2.'
Komentáre (7)
Riešenie

Odpoveď som našiel tu: http://blog.sqlauthority.com/2007/08/22/sql-server-t-sql-script-to-insert-carriage-return-and-new-line-feed-in-code/

Stačí spojiť reťazec a vložiť CHAR(13) tam, kde chcete mať zlom riadku.

Príklad:

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

Toto vypíše nasledujúce:

Toto je riadok 1.
Toto je riadok 2.

Komentáre (7)

Po Google...

Prevzatie kódu z webovej stránky:

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))

Vyzerá to tak, že sa to dá urobiť nahradením zástupného znaku symbolom CHAR(13)

Dobrá otázka, sám som to nikdy nerobil :)

Komentáre (4)