0

文字列列を返すクエリ(より具体的には、クエリではなくビュー)が必要です。文字列はコードで、先頭に 2 文字 (LJ) が付いている場合があります。接頭辞が付いている場合 -- 接頭辞を削除する必要があります。プレフィックスが存在しない場合は、そのままにしておく必要があります。SQLでそのようなことを行うことは可能ですか? サーバーは FirebirdSQL 1.5 です。


与えられた解決策はどれもうまくいきませんでしたが、彼らの助けを借りて、私は自分でそれを理解することができました. Substring関数は存在しますが、構文が異なります。コンマの代わりに、適切なキーワードを使用する必要があります。

Substring(col from pos for count)
4

5 に答える 5

2

はい、列自体を選択する代わりに、プレフィックス LJ を何も置き換えない式を記述します

   Select case When colName Like 'LJ%' 
                Then SubString([colName], 2, Len(colName) - 2)
                Else ColName End
   From ... 
于 2009-10-02T17:26:42.213 に答える
1
SELECT
  CASE Substring(columnName, 2, 2) IS 'LJ' THEN Subsrtring(columnName, 2, LEN(columnName) -2) ELSE columnName END

それがあなたが探しているものだと思います。テストを実行していませんが、要点はわかります...

それが役に立てば幸い!

于 2009-10-02T17:25:19.153 に答える
0

FreeUDFLibのコピーを取得します。これには、文字列、数学、日付、変換、ブロブ処理などの関数がたくさんあります。それは、あなたが望むことを、より多くのことを行います

于 2009-10-02T21:14:08.357 に答える
0

文字列操作でそれを行うことができます:

SELECT CONCAT(REPLACE(LEFT(column_name,2), 'LJ', ''), SUBSTRING(column_name, 3))

これが Firebird で機能するかどうかはわかりません (Mysql でテスト済み)。

于 2009-10-02T17:46:29.287 に答える
0
select case 
           when substring(MyColumn, 1, 2) = 'LJ' 
               then substring(MyColumn, 3, len(MyColumn) - 2) 
           else 
               MyColumn 
       end
于 2009-10-02T17:33:35.503 に答える