IF..THEN.. 在 SQL-Server 2005 中格式化输出
IF..THEN.. format OUTPUT in SQL-Server 2005
我想我需要一个 If--Then 子句来完成下面的输出。我看到了这个问题的先前答案,但我不能(我不知道如何)将它应用到我的案例中。
我有一列包含以下文本:
<p>In 12/12 Maria gave away ,000,000 of her money to charity</p> <p>The 10/12 amount was received with enthusiasm.</p>
我的想法是我可以在字段中有多个段落。感兴趣的只是包含单词 'amount' 的段落中的日期,因此该列的预期格式化值应为:
10/12
单词量的段落可以随机放置在字段内容之间(在本例中是第二个,但可以变化);
对于无法从其他主题中提取我想要的输出,我提前表示歉意。我是新手,我用 REPLACE 和/或 CHARINDEX 工作,但我没能解决这个问题。如果有更简单的方法来提取它,我将不胜感激。
谢谢!
假设它始终遵循模式“... mm/yy 金额 ...”,那么:
Select substring(YourColumn, Charindex('amount', YourColumn)-6,5)
from YourTable
这将为您提供形式为“10/12”的字符串。除非你也有一年,否则真的没有办法把它变成一个日期。
根据评论编辑:现在你在说话。你需要这样的东西:
Select case
when Charindex(' amount', YourColumn) > 0
then substring(YourColumn, Charindex(' amount', YourColumn)-5,5)
when Charindex(' amount', YourColumn) > 0
then substring(YourColumn, Charindex(' amount', YourColumn)-5,5)
else null end as ExtractedInfo
from YourTable
我想我需要一个 If--Then 子句来完成下面的输出。我看到了这个问题的先前答案,但我不能(我不知道如何)将它应用到我的案例中。 我有一列包含以下文本:
<p>In 12/12 Maria gave away ,000,000 of her money to charity</p> <p>The 10/12 amount was received with enthusiasm.</p>
我的想法是我可以在字段中有多个段落。感兴趣的只是包含单词 'amount' 的段落中的日期,因此该列的预期格式化值应为:
10/12
单词量的段落可以随机放置在字段内容之间(在本例中是第二个,但可以变化);
对于无法从其他主题中提取我想要的输出,我提前表示歉意。我是新手,我用 REPLACE 和/或 CHARINDEX 工作,但我没能解决这个问题。如果有更简单的方法来提取它,我将不胜感激。
谢谢!
假设它始终遵循模式“... mm/yy 金额 ...”,那么:
Select substring(YourColumn, Charindex('amount', YourColumn)-6,5)
from YourTable
这将为您提供形式为“10/12”的字符串。除非你也有一年,否则真的没有办法把它变成一个日期。
根据评论编辑:现在你在说话。你需要这样的东西:
Select case
when Charindex(' amount', YourColumn) > 0
then substring(YourColumn, Charindex(' amount', YourColumn)-5,5)
when Charindex(' amount', YourColumn) > 0
then substring(YourColumn, Charindex(' amount', YourColumn)-5,5)
else null end as ExtractedInfo
from YourTable