【问题标题】:SQL SUBSTRING from ntext field only text before and afterSQL SUBSTRING from ntext field only text before and after
【发布时间】:2019-02-21 13:08:46
【问题描述】:

我在表格中有一个列是 ntext 并且包含多行文本。下面的例子。我需要的是在查询结果中只有这一行“这表明狭窄是中度的”。我已经在 select 语句中有一个子字符串,它删除了我想要在结果中出现的行之前的所有文本,但我不确定要添加什么来删除它后面的所有内容。

这是我正在处理的文本,它的内容可能不同,但我需要的行将始终存在

有轻度主动脉瓣关闭不全。 存在主动脉瓣狭窄。 根据连续性方程(LVOTd = 1.9 cm,V1 = 1.1 m/s,V2 = 2.7 m/s),峰值梯度为 29 mmHg,平均梯度为 17 mmHg,孔口为 1.2 cm2 (+/- 0.15cm2)。 这表明从连续性方程来看,狭窄程度适中。 这种狭窄的主动脉瓣钙化是中重度的。 从腋窗获得峰值主动脉梯度。 LVOT 尺寸修正为 1.9 厘米 - LVOT 也是根据先前的研究测量的。

这是我在 select 语句中的子字符串

    `SUBSTRING(CAST(s.av_summary as NVARCHAR(MAX)), CHARINDEX('This suggests 
    the stenosis', CAST(s.av_summary as NVARCHAR(MAX))) , 
    LEN(CAST(s.av_summary as NVARCHAR(MAX)))) as AV_Summary`

【问题讨论】:

  • 您是否知道this page 顶部的警告自2005 以来以某种形式出现过。现在是超越从您的数据库中删除 ntext 的时间了。
  • 我希望可以,这是我维护的应用程序的数据库。我无权告诉公司他们需要更改数据库的格式。虽然我已经多次向公司表达了我的想法:)
  • 因为您要删除除“这表明狭窄程度适中”以外的文本,因此您只需输出文本“这表明狭窄程度适中”(如果字符串包含它 - 所以我)我对你为什么要这样做感到困惑

标签: sql-server substring


【解决方案1】:

SUBSTRING

SUBSTRING(表达式,开始,长度)

所以要计算所需的符号数:

SUBSTRING (
CAST(s.av_summary as NVARCHAR(MAX))
,CHARINDEX('This suggests the stenosis', CAST(s.av_summary as NVARCHAR(MAX)))
,LEN('This suggests the stenosis')
) as AV_Summary

【讨论】:

  • 完美!这正是我需要做的。非常感谢先生!
【解决方案2】:
SELECT CASE WHEN CHARINDEX('This suggests the stenosis', CAST(s.av_summary as NVARCHAR(MAX))) > 0 
            THEN 'This suggests the stenosis' 
            END AS txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-02
    • 2013-01-11
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多