gpt4 book ai didi

sql - 获取 MS SQL 中特定 varchar 的行数

转载 作者:数据小太阳 更新时间:2023-10-29 01:52:41 25 4
gpt4 key购买 nike

在 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 函数解决吗?

最佳答案

使用 Replace 通过替换为空 ('') 来消除换行符。然后您可以从原始文本中减去修改后的文本的长度。

关于sql - 获取 MS SQL 中特定 varchar 的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17063757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com