【问题标题】:How to get value inside quotes in SQL如何在 SQL 中的引号内获取值
【发布时间】:2018-06-09 17:49:51
【问题描述】:

我想在 SQL 中分离一个固定的表达式,以获取 ' ' 中的字符串值。 例如在以下 SQL 中:

declare @value varchar(60)
set @value = 'a.[country] LIKE ''US'''

我想单独存储信息US,有什么办法吗? 提前谢谢你。

【问题讨论】:

  • “单独存储美国信息”是什么意思?您始终可以将US 带到另一个变量并连接字符串。
  • 我相信问题是关于从@value 中提取US(或引号之间的任何文本)。
  • 缺少上下文。请edit您的问题提供样本数据和期望的结果。
  • 这个表达式示例是一个固定表达式,在单引号内有多个可能的值(US、DE、FR 等)。我想以一种我可以接受的方式解析它 - 在某些情况下不同 - 值,它在单引号内。
  • @homeostasis 请看看这是否对你有帮助:social.msdn.microsoft.com/Forums/sqlserver/en-US/…

标签: sql sql-server


【解决方案1】:

你可以试试这个

declare @value varchar(60)
set @value = 'a.[country] LIKE ''US'''

select left(Right(@value,3),2)
--OR this
select substring(Right(@value,3), 1, 2) 

【讨论】:

  • 非常感谢!
  • 我不确定它是否适合您的答案,但它会让您了解在 SQL 中使用 Left、Right 和 Substring 函数
【解决方案2】:

这个问题似乎不完整,但基于这个问题,我建议在动态字符串中使用一些分隔符,并在 SQL 中使用 LEFT、CHARINDEX 和 SUBSTRING 的组合从 SQL 中获取值。

示例

以下不是最好的例子,只是解释如何使用它: 例如

declare @value varchar(60)
set @value = 'a.[country] LIKE §''US'''
SELECT LEFT(SUBSTRING(@value,
                      CHARINDEX('§', @value) + 1, 100),
                      CHARINDEX('§', @value) - 1)

输出

'美国'

StackOverflow 上已经有一些关于此的示例。

如果您还没有查看其他 StackOverflow 帖子,可以参考以下内容:

How to extract this specific substring in SQL Server?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 2022-07-24
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    相关资源
    最近更新 更多