2

質問があります:

SELECT (column LIKE '%string%') AS bool FROM table

それは戻ります:

「右括弧がありません」

なんで?

4

4 に答える 4

2

演算子のため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」文字列でいくつかのワイルドカードを使用する必要があります。それ以外の場合は、単純な等式で十分です。

フィドル

ドキュメンテーション

于 2013-02-17T14:02:33.150 に答える
1

使用する必要があります:

SELECT DECODE(login,'admin','TRUE','FALSE') as bool FROM users;
于 2013-02-17T14:21:41.783 に答える
1

公式には、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

...またはその他の順列。

于 2013-02-17T15:17:59.740 に答える
0

1を返します-見つかった文字列、それ以外の場合は0:

SELECT LEAST(1,INSTR(login,'admin')) AS bool FROM users
于 2013-02-17T15:29:12.287 に答える