In MS SQL Server 2012 dispongo di un database con una tabella contenente una colonna varchar contenente un testo che potrebbe includere anche interruzioni di riga.Ottieni il numero di righe per varchar specifico in MS SQL
Esempio di base:
CREATE TABLE Example
(
[ID] INT
, [Text] VARCHAR(100)
);
INSERT INTO Example ([ID], [Text])
VALUES
(1, 'This is a test'),
(2, 'This is another
test with
two line breaks'),
(3, 'This is a test
with one line break');
Ora voglio ottenere le linee totali di testo per ogni record, vale a dire, qualcosa di simile:
--------------------
| ID | LinesOfText |
--------------------
| 1 | 1 |
--------------------
| 2 | 3 |
--------------------
| 3 | 2 |
--------------------
Purtroppo, non sembra essere funzioni integrate per qualcosa di simile. La mia idea era di contare le occorrenze Chr(10)+Chr(13)
e aggiungere 1 alla fine. Ma CHARINDEX
trova solo la prima occorrenza in una stringa.
Qualche idea su come risolvere questo problema?
Ulteriori informazioni che potrebbero essere utili: Per dare una panoramica più approfondita ai miei dati, il "Testo" proviene da una stringa XML che contiene interruzioni di riga, ad es.
...
<a>This is
another test
with two line breaks</a>
...
Io uso CROSS APPLY XML.nodes(...
e XPath per trovare tutti <a>
nodi del XML. Potrebbe essere risolto direttamente con le funzioni XML T-SQL?
Grazie, già cambiato. L'ho copiato da sqlfiddle.com ma non ero a conoscenza che sono in modalità MySQL – Markus