我需要在SQL或Python中找到字符串中用大写latter写的字,如果它们存在的话。
例如,对于字符串:'我的名字是NOA',它将返回NOA。
我想到的漫长道路是使用ascii值: 如果64< chr(i)< 91 如果64< chr(i + 1)< 91 ....
答案 0 :(得分:0)
您可以使用string_split
。
假设您有此表:
create table phrases (
phrase varchar(200)
);
insert into phrases values ('My name is NOA');
然后你可以写:
select phrase, value as uppercase_word
from phrases
cross apply string_split(phrase, ' ')
where upper(value) = value
根据给定的样本数据,它将返回:
phrase | uppercase_word
---------------+---------------
My name is NOA | NOA
请务必在文档中注意这些信息:
STRING_SPLIT
功能仅在兼容级别130下可用。如果数据库兼容级别低于130,则SQL Server将无法找到并执行STRING_SPLIT
功能。您可以使用以下命令更改数据库的兼容级别:ALTER DATABASE DatabaseName SET COMPATIBILITY_LEVEL = 130