gpt4 book ai didi

sql - 如何使用 MS SQL 中的 LIKE 语句从表中选择仅包含大写西里尔字符的行

转载 作者:行者123 更新时间:2023-12-05 00:01:20 25 4
gpt4 key购买 nike

我想使用 LIKE 从表中选择 [Name] 列仅包含大写西里尔字符以及逗号和连字符的行:

SELECT  *
FROM Clients
WHERE NAME LIKE '%[А-Я][,-]%' COLLATE Cyrillic_General_CS_AS

或者使用显式模式:

SELECT *
FROM Clients
WHERE NAME LIKE '%[АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ][,-]%' COLLATE Cyrillic_General_CS_AS

但是这些选择的行中至少有一个字符存在于模式中(但允许任何其他字符不存在于模式中)。

也许使用 ^(不是谓词)排除任何其他字符,如下所示:

SELECT  *
FROM Clients
WHERE NAME LIKE '%[^A-Z][./=+]%' COLLATE Cyrillic_General_CS_AS

但这需要枚举大量不需要的字符。

如何最好地做出选择?

最佳答案

使用双重否定。搜索列至少包含一个您感兴趣的字符的行:

SELECT *
FROM Clients
WHERE NAME NOT LIKE '%[^-АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ,]%' COLLATE Cyrillic_General_CS_AS

(我不太确定您将连字符和逗号放在单独的组中试图做什么,但我现在已将它们移到同一组中,因为这似乎有一定道理)

关于sql - 如何使用 MS SQL 中的 LIKE 语句从表中选择仅包含大写西里尔字符的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32472452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com