gpt4 book ai didi

sql - SQL:列<> '*.*'是什么意思?

转载 作者:行者123 更新时间:2023-12-02 06:27:55 24 4
gpt4 key购买 nike

我有一个现有的代码,可以在下面的表中找到where条件。

SELECT * FROM MYTABLE WHERE MYCOLUMN <> '*.*';
MYCOLUMN <> '*.*'MYCOLUMN <> '*'之间有区别吗?
MYCOLUMN <> '*.*'是什么意思?

最佳答案

Is there a difference between MYCOLUMN <> '*.*' and MYCOLUMN <> '*'



是的,您正在将不同的文本文字与 an inequality comparison condition进行比较。
*没有特殊含义。具体来说,它是 ,而不是通配符。从模式看来,您的列可能包含文件名,并且稍后在OS级别对值进行了一些处理,这些值可能是通配符。对于实际查询,它们不是。
<>!=相同,因此您要寻找第一种情况下列的全部内容不是文字字符串 '*.*'的行,或者寻找列中的全部内容不是文字字符串 '*'的行。第二。除null以外,没有值可以同时满足这两个条件。 (而且null也不真正匹配-因为它不等于或不等于任何东西;但是比较的结果是“未知”,因此它不包括在结果集中)。

作为演示:
create table t42(id number, mycolumn varchar2(20));
insert into t42 (id, mycolumn) values (1, '*');
insert into t42 (id, mycolumn) values (2, 'The*is embedded');
insert into t42 (id, mycolumn) values (3, 'The * is embedded');
insert into t42 (id, mycolumn) values (4, '*.*');
insert into t42 (id, mycolumn) values (5, 'The*.*is embedded');
insert into t42 (id, mycolumn) values (6, 'The *.* is embedded');
insert into t42 (id, mycolumn) values (7, 'No asterisk');
insert into t42 (id, mycolumn) values (8, null);

对于第一个条件,仅ID 3和8被排除(3是因为条件为真,8是因为未知):
select * from t42 where MYCOLUMN <> '*.*';

ID MYCOLUMN
---------- --------------------
1 *
2 The*is embedded
3 The * is embedded
5 The*.*is embedded
6 The *.* is embedded
7 No asterisk

6 rows selected.

在第二种情况下,仅ID 1和ID 8被排除:
select * from t42 where MYCOLUMN <> '*';

ID MYCOLUMN
---------- --------------------
2 The*is embedded
3 The * is embedded
4 *.*
5 The*.*is embedded
6 The *.* is embedded
7 No asterisk

6 rows selected.

关于sql - SQL:列<> '*.*'是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51077595/

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