質問があります:
SELECT (column LIKE '%string%') AS bool FROM table
それは戻ります:
「右括弧がありません」
なんで?
演算子のため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;
公式には、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