如何创建姓氏以';开头的oracle视图;S'';?

如何创建姓氏以';开头的oracle视图;S'';?,oracle,Oracle,我正在尝试创建一个视图,该视图允许我根据以下内容选择姓氏以“S”开头的所有用户: CREATE TABLE cteam_Users( UserLastName VARCHAR2(50) NOT NULL, ); INSERT INTO cteam_Users ( UserLastName,) VALUES ('Sam'); INSERT INTO cteam_Users ( UserLastName,) VALUES ('Tam');

我正在尝试创建一个视图,该视图允许我根据以下内容选择姓氏以“S”开头的所有用户:

CREATE TABLE cteam_Users(
    UserLastName  VARCHAR2(50) NOT NULL,
    );


INSERT INTO cteam_Users
    (  UserLastName,)
    VALUES ('Sam');

INSERT INTO cteam_Users
    (  UserLastName,)
    VALUES ('Tam');

Create view cteam_V1 As 
SELECT UserLastName From cteam_Users 
Where UserLastName = 's%'; 

SELECT  * FROM cteam_V1;
Create view cteam_V1 As 
SELECT UserLastName From cteam_Users 
Where lower(UserLastName) like 's%';

您需要使用
like
操作符,如下所示:

CREATE TABLE cteam_Users(
    UserLastName  VARCHAR2(50) NOT NULL,
    );


INSERT INTO cteam_Users
    (  UserLastName,)
    VALUES ('Sam');

INSERT INTO cteam_Users
    (  UserLastName,)
    VALUES ('Tam');

Create view cteam_V1 As 
SELECT UserLastName From cteam_Users 
Where UserLastName = 's%'; 

SELECT  * FROM cteam_V1;
Create view cteam_V1 As 
SELECT UserLastName From cteam_Users 
Where lower(UserLastName) like 's%';

我使用了
lower
函数进行不区分大小写的匹配。

这将防止在UserLastName被索引时使用索引(除非它是FBI),并且在您使用exadata时可能会阻止卸载到存储单元(我对
lower
尤其不确定,但一些本机sql函数不会像所有pl/sql一样被卸载)请不要通过破坏您的帖子来为其他人做更多的工作。通过在Stack Exchange网络上发布,您已经在下授予了Stack Exchange分发该内容的不可撤销的权利(即,无论您未来的选择如何)。根据堆栈交换策略,发布的是非故意破坏版本的帖子。因此,任何故意破坏行为都将恢复。如果您想了解有关删除帖子的更多信息,请参阅: