Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server T-SQL通配符不工作运算符^_Sql Server_Tsql - Fatal编程技术网

Sql server T-SQL通配符不工作运算符^

Sql server T-SQL通配符不工作运算符^,sql-server,tsql,Sql Server,Tsql,T-SQL不是通配符: SELECT * FROM Customers WHERE City LIKE 'A[^a]%'; 它返回:“亚琛” 那么这里的^运算符是什么意思呢?如果使用,同样的结果也会出现 WHERE City LIKE 'A[a]%'; 我知道我可以使用'A[!A]'并且会工作,我关心的是为什么^?来自: 插入符号通配符[^]: 插入符号通配符用于搜索任何单个字符 字符不在指定的范围[^a-c]或集合[^abc]内 查找以3个字符的名字开头的所有员工 带“Ja”,第三个字符不

T-SQL不是通配符:

SELECT * FROM Customers
WHERE City LIKE 'A[^a]%';
它返回:“亚琛”

那么这里的^运算符是什么意思呢?如果使用,同样的结果也会出现

WHERE City LIKE 'A[a]%';
我知道我可以使用
'A[!A]'
并且会工作,我关心的是为什么
^

来自:

插入符号通配符[^]:

插入符号通配符用于搜索任何单个字符 字符不在指定的范围[^a-c]或集合[^abc]内

查找以3个字符的名字开头的所有员工 带“Ja”,第三个字符不是“n”:

SELECT FirstName, MiddleName, LastName
FROM Person.Person
WHERE FirstName LIKE 'Ja[^n]'

以下是一个屏幕截图,说明它正在按预期工作:

来自:

插入符号通配符[^]:

插入符号通配符用于搜索任何单个字符 字符不在指定的范围[^a-c]或集合[^abc]内

查找以3个字符的名字开头的所有员工 带“Ja”,第三个字符不是“n”:

SELECT FirstName, MiddleName, LastName
FROM Person.Person
WHERE FirstName LIKE 'Ja[^n]'

以下是一个屏幕截图,说明它正在按预期工作:



如果在sql中不是这样,那么它应该给出错误,奇怪:)请参阅MSDN链接,它在我的数据库(sql Server 2014)上运行正常。为什么它应该给出错误?可能您正在寻找字符
^
如果!正在工作,则您有一个奇怪的配置,因为[]中的^。对我有用。尝试:选择“匹配”,其中“亚琛”类似于“A[^A]%”;如果在sql中不是这样,那么它应该给出一个错误,奇怪:)请参阅MSDN链接它在我的数据库(sql Server 2014)上运行良好。为什么它应该给出一个错误?可能您正在寻找字符
^
如果!正在工作,则您有一个奇怪的配置,因为[]中的^。对我有用。尝试:选择“匹配”,其中“亚琛”类似于“A[^A]%”;你能运行你的查询并检查结果吗?它不起作用。@Rahul Tripathi:这是如何回答问题的?为什么当模式像“A[^A]%”一样
时会检索到“Aachen”
,它应该排除在首字母“A”之后带有“A”的城市?@ThorstenKettner:-它按预期工作。我刚刚在我的SQL Server上验证了它,并附上了相同的屏幕截图。@AliAdravi:-它正在按预期工作。我在我的SQL Server上执行了相同的操作,它正在工作。您确定您尝试了同一个查询吗?您正在使用的SQL server的哪个版本,在2008年不起作用?您可以运行您的查询并检查结果吗?它不起作用。@Rahul Tripathi:这是如何回答问题的?为什么当模式像“A[^A]%”一样
时会检索到“Aachen”
,它应该排除在首字母“A”之后带有“A”的城市?@ThorstenKettner:-它按预期工作。我刚刚在我的SQL Server上验证了它,并附上了相同的屏幕截图。@AliAdravi:-它正在按预期工作。我在我的SQL Server上执行了相同的操作,它正在工作。您确定使用了相同的查询吗?您使用的SQL server的哪个版本在2008年不起作用