sql之如何在 SQL Server 和 Oracle SQL 中基于固定字符选择直到第 N 个空格的子字符串

youxin 阅读:19 2025-01-19 22:14:33 评论:0

我需要根据固定字符长度选择一个子字符串,直到第 N 个空格。让我解释一下这个问题。

假设我有三个不同的字符串:

  1. Lorem ipsum dolor sat amet,consectetur adipiscing elit
  2. Lorem ipsumdolor sat amet,consectetur adipiscing elit
  3. Lorem ipsum dolorsitamet,consectetur adipiscing elit

如果我从字符串开头选择 20 个字符,我会依次得到以下子字符串

  1. Lorem ipsum dolor si
  2. Lorem ipsumdolor 坐
  3. Lorem ipsum dolorsit

但我希望我的子字符串(最多 20 个字符长)像这样

  1. Lorem ipsum dolor
  2. Lorem ipsumdolor 坐
  3. Lorem ipsum

也就是说,我不希望两个空格之间有任何部分单词

请帮助我生成查询。

请您参考如下方法:

甲骨文:

select substr(substr(MyField,1,20), 1, instr(substr(MyField,1,20), ' ',-1,1)) 
from MyTable 

SQL Server

SELECT LEFT(MyField, 20 - CHARINDEX (' ' ,REVERSE(LEFT(MyField,20)))) 
FROM MyTable 


标签:oracle
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号