SQL:column'*.*是什么意思?
我有一个现有的代码,我在下面的where条件下找到了一个表SQL:column'*.*是什么意思?,sql,oracle,Sql,Oracle,我有一个现有的代码,我在下面的where条件下找到了一个表 SELECT * FROM MYTABLE WHERE MYCOLUMN <> '*.*'; MYCOLUMN'*.*.'和MYCOLUMN'*'之间是否存在差异 MYCOLUMN'*.*.'是什么意思?where条件 MYCOLUMN <> '*.*' 正在专门搜索与“***”不同的文本。此搜索将包括'*',因为'*'与'*.'不同 where条件不检查正则表达式或通配符 要搜索带有*的文本,可以使用lik
SELECT * FROM MYTABLE WHERE MYCOLUMN <> '*.*';
MYCOLUMN'*.*.'和MYCOLUMN'*'之间是否存在差异
MYCOLUMN'*.*.'是什么意思?where条件
MYCOLUMN <> '*.*'
正在专门搜索与“***”不同的文本。此搜索将包括'*',因为'*'与'*.'不同
where条件不检查正则表达式或通配符
要搜索带有*的文本,可以使用like条件-
MYCOLUMN'*.*.'是什么意思
如果MYCOLUMN中的值不是精确的字符串'*.*',并且不为空,则它将与该条件匹配
*不是通配符
MYCOLUMN'*.*.'和MYCOLUMN'*'之间有区别吗
Oracle 11g R2架构设置:一些测试数据:
CREATE TABLE table_name ( mycolumn ) AS
SELECT '*' FROM DUAL UNION ALL
SELECT '*.*' FROM DUAL UNION ALL
SELECT 'a.b' FROM DUAL UNION ALL
SELECT 'a' FROM DUAL UNION ALL
SELECT NULL FROM DUAL;
问题1:
问题2:
查询3:如果要在匹配中使用通配符,请使用带有%的LIKE运算符作为通配符,而不是*
:匹配所有不为NULL且不包含值的值。人物:
| MYCOLUMN |
|----------|
| * |
| a |
问题4:
:匹配所有非空且不包含零个或多个字符的值。这将永远不会匹配任何内容
No data found.
MYCOLUMN'*.*.'和MYCOLUMN'*'之间有区别吗
是的,您正在将不同的文本文字与进行比较
*没有特殊意义。具体来说,它不是通配符。从模式上看,您的列可能包含文件名,您稍后在操作系统级别对这些值进行了一些处理,这些值可能是通配符。但对于实际的查询,它们不是
与相同!=,因此,您要查找的行在第一种情况下,列的全部内容不是文字字符串'*.*',或者在第二种情况下,列的全部内容不是文字字符串'*'。除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和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.
不等于比较没有通配符。即不等于**,或不等于*。LIKE不使用*字符作为通配符。另外,如果您要链接到文档,请链接到Oracle官方文档,而不是经常与Oracle无关的第三方文档。您是对的,我的错!编辑我的答案以链接到oracle文档。泰
| MYCOLUMN |
|----------|
| * |
| a |
SELECT *
FROM table_name
WHERE MYCOLUMN NOT LIKE '%'
No data found.
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);
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.
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.