I know that, in some Programming language, if you do something like:
'This is on first line \n This is on second line'
Then it will display properly like this:
This is on first line This is on second line
When I concatenate a string in a SQLite database
SELECT *, [FIELD1] || '\n' || [FIELD2] from TABLE
(where [FIELD1] = This is on first line [FIELD2] = This is on second line)
it displays as such:
This is on first line \n This is on second line
Is there a reason that it isn't displaying the \n characters properly?
Operating systems have special characters denoting the start of a new line. For example, in Linux a new line is denoted by “\n”, also called a Line Feed. In Windows, a new line is denoted using “\r\n”, sometimes called a Carriage Return and Line Feed, or CRLF.
The SQL standard provides the CONCAT() function to concatenate two strings into a single string. SQLite, however, does not support the CONCAT() function. Instead, it uses the concatenate operator ( || ) to join two strings into one.
SQLite does not enforce the length of a VARCHAR. You can declare a VARCHAR(10) and SQLite will be happy to store a 500-million character string there. And it will keep all 500-million characters intact. Your content is never truncated.
SQL has no backslash escapes.
You can generate a newline in a string by writing it directly in the query:
SELECT [Field1] || ' ' || [Field2] FROM MyTable
or use a blob literal:
SELECT [Field1] || x'0a' || [Field2] FROM MyTable
or use the char function:
SELECT [Field1] || char(10) || [Field2] FROM MyTable
Try char(13)
(if you want to see it in Windows notepad).
select col || char(13) from mytable
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With