在 Teradata 中修剪字符串

Posted

技术标签:

【中文标题】在 Teradata 中修剪字符串【英文标题】:Trimming a string in Teradata 【发布时间】:2014-09-23 19:22:19 【问题描述】:

我在 Teradata 中有一个表,其中包含特定列“位置”,例如

location
Rockville County, TX 
Green River County, IL
Joliet County, CA
Jones County, FL
.
.
.

我需要做的是去掉县名后面的所有内容,并将列变成类似

location
Rockville
Green River 
Joliet 
Jones

我一直在尝试使用函数 trim like

trim(trailing ' County' from location)

但它不起作用。有什么想法吗?

【问题讨论】:

【参考方案1】:

trim 函数用于删除空格。

您可以使用indexsubstring 的组合,例如:

select 
    'Green River County, IL' your_string
    , substring(your_string, 0, index(your_string, 'County')) your_desired_result

index(target_string, string_to_find) 为您提供一个字符串在另一个字符串中的位置

substring(target_string, start_index, end_index) 允许您拉出字符串的特定部分

【讨论】:

【参考方案2】:

这是标准 SQL 方式:

substring(location from 0 for position(' County' in location))

在 TD14 中,您还可以使用正则表达式:

regexp_substr(location, '.*(?= County)')

【讨论】:

谢谢大家。会正确实施。

以上是关于在 Teradata 中修剪字符串的主要内容,如果未能解决你的问题,请参考以下文章

Teradata SQL VARCHAR 和空格

Teradata SQL从中文数字字母混合字符串中只提取数字regexp_substr

在Java中修剪字符串,同时保留完整的单词

在Java中修剪字符串的正确方法

从字符串中修剪字符串[重复]

字节数组中的字符串不会在 C# 中被修剪?