小编Mar*_*kus的帖子

获取MS SQL中特定varchar的行数

在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');
Run Code Online (Sandbox Code Playgroud)

现在我想获得每条记录的总文本行,即:

--------------------
| ID | LinesOfText |
--------------------
|  1 |           1 |
--------------------
|  2 |           3 |
--------------------
|  3 |           2 |
--------------------
Run Code Online (Sandbox Code Playgroud)

不幸的是,似乎没有像这样的东西的内置函数.我的想法是计算Chr(10)+Chr(13)出现次数并在最后加1.但CHARINDEX只能在字符串中找到第一个匹配项.

不知道怎么解决这个问题?

可能有用的额外信息:为了更深入地了解我的数据,"文本"来自包含换行符的XML字符串,例如

...
<a>This …
Run Code Online (Sandbox Code Playgroud)

xml sql t-sql sql-server lines-of-code

5
推荐指数
3
解决办法
3886
查看次数

标签 统计

lines-of-code ×1

sql ×1

sql-server ×1

t-sql ×1

xml ×1