gpt4 book ai didi

sql - patindex t-sql 特殊字符

转载 作者:行者123 更新时间:2023-12-02 03:33:05 24 4
gpt4 key购买 nike

如何检查字符串中是否存在!@#$%^&*()_-+特殊字符?

我试过了

SELECT PATINDEX('!@#$%^&*()_-+', 'test-');  
SELECT PATINDEX('[!@#$%^&*()_-+]', 'test-');
SELECT PATINDEX('%[!@#$%^&*()_-+]%', 'test-');

但是全部返回 0,它应该返回 5,有什么帮助吗?

最佳答案

-LIKEPATINDEX() 模式中的特殊字符。如果它位于第一个位置以外的任何位置,则它是一个字符范围 - 例如由 [0-9] 表示的所有数字。

您可以通过移动条件来执行您想要的操作:

PATINDEX('%[-!@#$%^&*()_+]%', 'test-'), 

不幸的是,PATINDEX() 模式不支持转义字符。您还可以将此逻辑表达为 LIKECASE:

(CASE WHEN 'test-' LIKE '%[-!@#$%^&*()_+]%' ESCAPE '$' THEN 1 ELSE 0 END)

或者使用“not”模式:

(CASE WHEN 'test-' NOT LIKE '%[^0-9a-zA-Z]%' THEN 0 ELSE 1 END)

关于sql - patindex t-sql 特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51241928/

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