sql-server - 从变量中提取特定字符串
问题描述
我有一个包含动态字符串的变量。我想得到等于COATitle
only 的词。
DECLARE @String Varchar(250)
SET @String = 'COATitle = ''Hello'' AND Date = ''2018-10-09'' AND Name = ''Warner Bros'''
SELECT @String AS String
该字符串是从前端提供的,因此用户也可以按不同的顺序输入。例如
SET @String = 'Date = ''2018-10-09'' AND COATitle = ''Hello Tonia'' AND Name = ''Warner Bros'''
SET @String = 'COATitle = ''Hello'' AND Name = ''Warner Bros'' Date = ''2018-10-09'' AND '
SET @String = 'COATitle = ''Hello World'' AND Date = ''2018-10-09'' AND Name = ''Warner Bros'''
SET @String = 'COATitle = ''Piece of Cake'' AND Date = ''2018-10-09'' AND Name = ''Tim Martin'''
上述字符串的预期输出为:
1: Hello Tonia
2: Hello
3: Hello World
4: Piece of Cake
解决方案
这里的一种方法是仅在 SQL Server 中使用基本字符串函数。我们可以取输入的一个子字符串,使用起始点作为紧随其后的文本COATitle = '
,一直持续到下一个闭合单引号之前。
SELECT
word,
SUBSTRING(word,
CHARINDEX('COATitle = ''', word) + 12,
CHARINDEX('''', word, CHARINDEX('COATitle = ''', word) + 12) -
CHARINDEX('COATitle = ''', word) - 12) AS target
FROM yourTable;
演示
推荐阅读
- google-sheets - 在谷歌表格中执行单元格功能
- hive - Hive - 没有枚举常量 org.apache.parquet.schema.OriginalType.s (state=,code=0)
- html - 仅使用 css 为占位符添加中断
- math - DAX:使用切片器动态更新计算的列值
- vue.js - nuxtjs/vuejs 中带有尾风类的动态类绑定
- qaf - 我是 QAF 的新手。我正在使用常用步骤来断言/验证文本
- google-cloud-platform - 允许 GCloud 服务帐号访问特定用户的 G Suite 帐号吗?
- html - 仅 CSS 网格列,不换行,并自动填充覆盖端间隙
- javascript - React父函数不接收子参数
- javascript - 我如何将 javascript+jQuery 转换为 reactjs 组件