我有一个名为场备注看起来像下面这样:如何返回一个固定长度的字符串一个字符串的?
My voter card number is ABC123456789
VOter card ID is vbv147258369
bnl478512369
我想从这个领域的所有行只获得一个给定长度的字符串。对于上述输入,和12的串长度,输出应该是
ABC123456789
vbv147258369
bnl478512369
注意,子串的长度是固定的,即12
我有一个名为场备注看起来像下面这样:如何返回一个固定长度的字符串一个字符串的?
My voter card number is ABC123456789
VOter card ID is vbv147258369
bnl478512369
我想从这个领域的所有行只获得一个给定长度的字符串。对于上述输入,和12的串长度,输出应该是
ABC123456789
vbv147258369
bnl478512369
注意,子串的长度是固定的,即12
尝试为:
DECLARE @CONTENT TABLE(REMARK VARCHAR(MAX))
INSERT INTO @CONTENT VALUES('My voter card number is ABC123456789');
INSERT INTO @CONTENT VALUES('VOter card ID is vbv147258369');
INSERT INTO @CONTENT VALUES('bnl478512369');
SELECT CASE charindex(' ',REMARK)
WHEN 0 THEN REMARK
ELSE REVERSE(SUBSTRING(REVERSE(REMARK),0,CHARINDEX(' ',REVERSE(REMARK))))
END as REMARK FROM @CONTENT
非常特定产品的答案,没有指定的数据库管理系统的问题。 – jarlh
由于没有RDBMS产品中提到,我会坚持使用算法来回答。您需要使用RIGHT
函数并从字符串中提取最后12个字符。如果使用MSSQL RIGHT
功能,则在Oracle和其他产品的情况下,可以使用substring
函数和length
函数的组合来获得所需的输出。
假设字符串函数签名像substring(input,start_poistion, no_of_characters)
,该方法提取最右边的12个字符是
substring(input_string, length(input_string)-12,12)
如果这不符合您的要求,替代解决方案是使用正则表达式,确定起始位置所需的12个字符并使用子字符串函数提取它。
什么是您的编程语言 – SKLTFZ
'ABC123456789'的大小是12?是你想要的正确输出 –
你正在使用哪个dbms? (你已经有了一个产品的具体答案...) – jarlh