Oracle:缺少右括号
我有一个问题:Oracle:缺少右括号,oracle,sql-like,Oracle,Sql Like,我有一个问题: SELECT (column LIKE '%string%') AS bool FROM table 它返回: 缺少右括号 为什么?由于LIKE运算符,我们无法使用解码功能。我猜下面这句话,虽然很难看,但与你想要的相符: SELECT login, CASE WHEN login LIKE 'admin' THEN 1 ELSE 0 END FROM users; 或者,对于类似布尔值: SELECT logi
SELECT (column LIKE '%string%') AS bool FROM table
它返回:
缺少右括号
为什么?由于LIKE运算符,我们无法使用解码功能。我猜下面这句话,虽然很难看,但与你想要的相符:
SELECT
login,
CASE
WHEN login LIKE 'admin' THEN 1
ELSE 0
END
FROM users;
或者,对于类似布尔值:
SELECT
login,
CASE
WHEN login LIKE 'admin' THEN 'TRUE'
ELSE 'FALSE'
END
FROM users;
如果使用LIKE运算符,则希望在“admin”字符串中使用一些%通配符,否则一个简单的等式就足够了
由于LIKE运算符,我们不能使用DECODE函数。我猜下面这句话,虽然很难看,但与你想要的相符:
SELECT
login,
CASE
WHEN login LIKE 'admin' THEN 1
ELSE 0
END
FROM users;
或者,对于类似布尔值:
SELECT
login,
CASE
WHEN login LIKE 'admin' THEN 'TRUE'
ELSE 'FALSE'
END
FROM users;
如果使用LIKE运算符,则希望在“admin”字符串中使用一些%通配符,否则一个简单的等式就足够了
你应使用:
SELECT DECODE(login,'admin','TRUE','FALSE') as bool FROM users;
你应使用:
SELECT DECODE(login,'admin','TRUE','FALSE') as bool FROM users;
SQL中没有布尔数据类型,Oracle中也没有 这样做的标准方法是使用WHERE条款:
select whatever
from your_table
where column LIKE '%string%';
如果您真的想要一个列,那么您需要将字符串探测与DECODE或CASE结合起来。像这样
select decode(instr(column, 'string'), 0, 'FALSE', 'TRUE') as bool
from your_table
。。。或者这个
select case when column like '%string%' then 'TRUE' else 'FALSE' end as bool
from your_table
。。。或者其他一些排列。官方说法,SQL中没有布尔数据类型,Oracle中也没有 这样做的标准方法是使用WHERE条款:
select whatever
from your_table
where column LIKE '%string%';
如果您真的想要一个列,那么您需要将字符串探测与DECODE或CASE结合起来。像这样
select decode(instr(column, 'string'), 0, 'FALSE', 'TRUE') as bool
from your_table
。。。或者这个
select case when column like '%string%' then 'TRUE' else 'FALSE' end as bool
from your_table
。。。或者其他一些排列。它返回1-找到的字符串,否则返回0:
SELECT LEAST(1,INSTR(login,'admin')) AS bool FROM users
它返回1-找到字符串,否则返回0:
SELECT LEAST(1,INSTR(login,'admin')) AS bool FROM users
此查询试图做什么?Oracle不支持布尔数据类型,因此您必须使用字符串文字,如“真”、“假”或数字,如1、0。此查询试图做什么?Oracle不支持布尔数据类型,因此您必须使用字符串文字,如“真”、“假”或数字,如1,0.现在返回:FROM关键字not found where expected我们可以看到最终查询吗?没有通配符的LIKE与equals相同。是的,但是我假设他知道LIKE的使用是由进一步的字符串操作驱动的,因此我没有更改它。最终使用了您的版本:现在返回:FROM关键字not found where expected我们可以看到最终的查询吗?LIKE不带通配符与equals相同。是的,但是我假设他知道LIKE的使用是由进一步的字符串操作驱动的,因此我没有改变它。最终使用了你的版本:好的解决方案,但是whildcard是不允许的。好的解决方案,但是whildcard是不允许的。