2

以下にこのクエリがありますが、これは完全に機能しています。val_4でRPAD関数を使用する方法がわかりません。CASE内でRPADを使用しようとしましたが、失敗します。

SELECT RPAD(val_1,1,' '), RPAD(val_2,9,' '), RPAD(val_3,6,' '),
    (CASE val_4
        WHEN 'abc' THEN 'USEABLE'
        WHEN 'abcd' THEN 'USEABLE'
        WHEN 'abcde' THEN 'USEABLE'
        ELSE 'UNUSABLE'
    END)
FROM lists
INTO OUTFILE '/path/to/file'
FIELDS TERMINATED BY ''
LINES TERMINATED BY '\n';
4

1 に答える 1

3

ケース全体のラッピング:

SELECT RPAD(val_1,1,' '), RPAD(val_2,9,' '), RPAD(val_3,6,' '),
    RPAD(CASE val_4
        WHEN 'abc' THEN 'USEABLE'
        WHEN 'abcd' THEN 'USEABLE'
        WHEN 'abcde' THEN 'USABLE'
        ELSE 'abcdef'
    END, 6, ' ')
FROM lists
INTO OUTFILE '/path/to/file'
FIELDS TERMINATED BY ''
LINES TERMINATED BY '\n';

SQLフィドルの例


または、val_4:の値だけをラップします。

SELECT RPAD(val_1,1,' '), RPAD(val_2,9,' '), RPAD(val_3,6,' '),
    CASE RPAD(val_4,4,' ')
        WHEN 'abc' THEN 'USEABLE'
        WHEN 'abcd' THEN 'USEABLE'
        WHEN 'abcde' THEN 'USABLE'
        ELSE 'abcdef'
    END
FROM lists
INTO OUTFILE '/path/to/file'
FIELDS TERMINATED BY ''
LINES TERMINATED BY '\n';

SQLフィドルの例

于 2013-02-14T04:22:37.293 に答える