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