Sql 挂起来?如果在查询中忘记了表名周围的双引号,那没什么大不了的,查询将失败,您可以添加它们。我想任何使用Oracle的人都知道这一点。我不喜欢在名称中使用双引号,但很多时候我不得不使用双引号。如果一个userid作为另一个userpeers中的子字符串存在,
Sql 挂起来?如果在查询中忘记了表名周围的双引号,那没什么大不了的,查询将失败,您可以添加它们。我想任何使用Oracle的人都知道这一点。我不喜欢在名称中使用双引号,但很多时候我不得不使用双引号。如果一个userid作为另一个userpeers中的子字符串存在,,sql,oracle,Sql,Oracle,挂起来?如果在查询中忘记了表名周围的双引号,那没什么大不了的,查询将失败,您可以添加它们。我想任何使用Oracle的人都知道这一点。我不喜欢在名称中使用双引号,但很多时候我不得不使用双引号。如果一个userid作为另一个userpeers中的子字符串存在,这将返回太多行。这将返回“ORA-00942:表或视图不存在”,除非该表是使用区分大小写的密码创建的,如所示;创建表“User”…,这不是默认值,因此在统计上不太可能。@EdStevens我没有选择表名,我使用了问题中的名称。@nachospi
挂起来?如果在查询中忘记了表名周围的双引号,那没什么大不了的,查询将失败,您可以添加它们。我想任何使用Oracle的人都知道这一点。我不喜欢在名称中使用双引号,但很多时候我不得不使用双引号。如果一个
userid
作为另一个userpeers
中的子字符串存在,这将返回太多行。这将返回“ORA-00942:表或视图不存在”,除非该表是使用区分大小写的密码创建的,如所示;创建表“User”…,这不是默认值,因此在统计上不太可能。@EdStevens我没有选择表名,我使用了问题中的名称。@nachospiu-理解。但是你完全可以使用混合的案例名称而不受惩罚,只要你从不(包括在创建时)用双引号将其括起来。人们经常使用这种结构:“创建表用户…”(注意没有双引号)。但如果没有双引号,它仍然是在数据字典中以大写字母创建的。但是,只要将来的所有引用都没有双引号,就可以有效地使用不区分大小写的用法。因此,应指出并限定在示例中使用双引号。@EdStevens在Oracle中,USER(USER,USER,USER)是保留字,因此必须使用双引号将其用作表名(双引号允许区分大小写的名称)。如果我在查询中使用“User”,很明显,我创建了带有双引号的表。在表描述(问题中)中,表名是User(而不是User),那么我为什么要更改它呢?如果在查询中忘记了表名周围的双引号,那没什么大不了的,查询将失败,您可以添加它们。我想任何使用Oracle的人都知道这一点。我不喜欢在名称中使用双引号,但很多时候我不得不使用双引号。如果一个userid
在userpeers
中作为另一个的子字符串存在,这将返回太多行。如果一个userid
在userpeers
中作为另一个的子字符串存在,这将返回太多行。
UserID | UserPeers | Gender
-----------+--------------+--------
Mike | Tom1, Bob1 | M
John | Tom1, Greg1 | M
Sally |Mike1, John1 | F
Sara | Sally1, Bob1 | F
UserID
-------
Tom1
John1
SELECT *
FROM user
WHERE '%' UserPeers '%' LIKE IN (SELECT UserID FROM special_users)
UserID | UserPeers | Gender
-----------+--------------+---------
Mike | Tom1, Bob1 | M
John | Tom1, Greg1 | M
Sally | Mike1, John1 | F
SELECT DISTINCT u.*
FROM "User" u
INNER JOIN special_user su ON u.UserPeers like '%' || su.UserID || '%';
SELECT *
FROM "USER" u
WHERE EXISTS (
SELECT 1
FROM special_user su
WHERE ', ' || u.userpeers || ', ' LIKE '%, ' || su.userId || ', %'
)
SELECT *
FROM UserList
WHERE EXISTS (
SELECT *
FROM special_user
WHERE UserList.UserPeers LIKE '%' || UserID || '%'
);
SELECT uu.UserID,UserPeers,Gender
FROM
(
SELECT u.*, TRIM(REGEXP_SUBSTR(UserPeers,'[^,]+',1,level)) AS name_piece
FROM "user" u
CONNECT BY level <= REGEXP_COUNT(UserPeers,',') + 1
AND PRIOR SYS_GUID() IS NOT NULL
AND PRIOR u.UserID = u.UserID ) uu
JOIN special_user su
ON name_piece = su.UserID