0
我有这样的Oracle表行:如何选择只使用Active状态
CREATE TABLE USERS(
USERID INTEGER NOT NULL,
GROUPID INTEGER,
SPECIALNUMBER VARCHAR2(60),
USERNAME VARCHAR2(50),
PASSWD VARCHAR2(50),
DATETOCHANGEPASSWD DATE,
ADDRESS VARCHAR2(60),
STATEREGION VARCHAR2(50),
COUNTRY VARCHAR2(50),
USERSTATUS VARCHAR2(30),
TELEPHONE VARCHAR2(50),
DATEUSERADDED DATE,
USEREXPIREDATE DATE,
DATEUSERLOCKED CHAR(20),
CITY VARCHAR2(50),
EMAIL VARCHAR2(50),
DESCRIPTION CLOB
)
我用这个SQL查询来读取行:
SqlStatementSmall = "SELECT c.*"
+ " FROM (SELECT b.*, rownum rn"
+ " FROM (SELECT a.*"
+ " FROM USERS a"
+ " ORDER BY %s %s) b"
+ " WHERE rownum <= ?) c"
+ " WHERE rn > ?";
我如何修改SQL查询来选择行只有状态“有效”?
最良好的祝愿
谢谢你的回答!我有一个问题 - 通过这种方式,“active”这个词区分大小写。我如何使它不区分大小写? – user1285928 2012-07-13 17:34:04
AND UPPER(USERSTATUS)='ACTIVE' – krx 2012-07-13 17:55:22
@ user1285928 - 我不太明白'active'这个词是否区分大小写。无论您的数据库是否区分大小写。如果你的表中的值可以是'ACTIVE'和'active',那么我不建议你使用'UPPER',因为如果'USERSTATUS'上有索引,那么你的查询就不会使用它。你可以使用''WHERE Rn>?和USERSTATUS IN('ACTIVE','active')“'例如 – Lamak 2012-07-13 19:23:36