MS SQL Server 2012 には、改行を含む可能性のあるテキストを保持する varchar 列を含むテーブルを持つデータベースがあります。
基本的な例:
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');
ここで、各レコードのテキストの合計行数を取得したいと考えています。つまり、次のようなものです。
--------------------
| ID | LinesOfText |
--------------------
| 1 | 1 |
--------------------
| 2 | 3 |
--------------------
| 3 | 2 |
--------------------
残念ながら、このような組み込み関数はないようです。私のアイデアは、Chr(10)+Chr(13)
出現回数を数え、最後に 1 を追加することでした。ただしCHARINDEX
、文字列内の最初の出現のみを検索します。
これを解決する方法はありますか?
役立つ可能性のある追加情報: データをより深く理解するために、「テキスト」は改行を含む XML 文字列から取得されます。
...
<a>This is
another test
with two line breaks</a>
...
CROSS APPLY XML.nodes(...
XPathを使用<a>
して、XML 内のすべてのノードを検索します。これは、T-SQL XML 関数で直接解決できますか?