問題タブ [charindex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
35 参照

sql-server - 文字列列をスペースで正しく分割する

私のクエリでは、次のような iSeries メッセージ キューからの文字列を含む数百のレコードがあります。

結果に口座番号部分12345678と残高部分を表示する必要があります。17017362

私が試してみました:

文字列は残高まで固定長であるため、アカウントを簡単に取得できますが、返された文字列を分割して、 0とおそらく999999の間で異なるSUBSTRING(MQ_Message,92,30)残高部分を取得する必要があります(ペンス!)17017362

CHARINDEX を使用して考えられるあらゆる組み合わせを試した結果、バランスを取るのに本当に苦労しました。

これを行う最善の方法は何ですか?

0 投票する
2 に答える
52 参照

sql-server - テキストを複数の列に分割 - SQL Server

例:

テキストを列に分割する正規表現などを作成することは可能ですか?

次の表に等しい:

いくつかのクエリを試しましたが、常にある時点で中断します。

そして、私はなぜcharindex働いていないのか分かりません0:0:0

編集:

このクエリは、日付の値に応じて機能します。

この行G31450 /1129 GIG POA 11/4/2015 0:0:0 G31278 GIG POA 11/4/2015 0:0:0 MOVEはうまく機能します。departureandarrivalは常に 3 文字ですが、日付は 10、9、または 8 文字の場合があります。これを行う方法がわかりません。

0 投票する
1 に答える
43 参照

sql - 内部結合の文字インデックスはパフォーマンスに影響します

以下のクエリを持つ手順があります。

table1 には約 36,000 行あり、クエリは結果セットを読み込むのに約 40 秒かかります。

a.column には fts インデックスがインストールされており、xml データ型です。

結合を分割しようとしましたが、グループ化によって結果が異なります。

このクエリを書き直して高速化するにはどうすればよいですか?

0 投票する
2 に答える
40 参照

string - 2 つの文字の間にある文字列値を取得する

!03 と !03 の間の値を取得する必要があります。

例:

返される文字列は次のとおりです: 20151104

注: 文字列は常に 22 文字の長さではありませんが、!03 と !03 の間の値だけに関心があります。

これは私がこれまでに持っているものです。これ以上の進歩はありませんでした:

0 投票する
3 に答える
2434 参照

sql - CHARINDEX と整数

こんにちは、varchar 列で CHARINDEX を使用する場合に最適な選択がありますが、整数列で試してみると、次のエラーが発生します。

charindex 関数の引数 1 の引数のデータ型 int は無効です。

以下に、両方のクエリをリストしました。

stremail は整数の varchar intEmployeeID です

どんな助けも最も素晴らしいでしょう。

0 投票する
4 に答える
2574 参照

sql - 更新ステートメントで RIGHT 関数に無効な長さパラメーターが渡されました

同時に2つの列を設定しようとすると、更新が機能しない理由を誰かが知っていますか?

1 つの列だけを更新してクエリを実行すると、期待どおりに機能します。両方で実行すると、次のエラーが発生します。

CHARINDEX が 0 を返したときにこれが発生する可能性があることはわかっていますが、WHERE 句でそれを制御しようとしています。

0 投票する
0 に答える
228 参照

sql - SQL CHARINDEX、SUBSTIRNG、PARSENAME のパフォーマンスが向上

私はテーブルを持っています[Evetns]- 行

DateRangeタイプとして期間セットを持つ別のテーブルがあります

したがって、結果は次のようになります

イベント日付が 2000 年 12 月 25 日のイベント サンプルは、期間データの 1 つの範囲で見つかります。

このために、以下のように関数 GetRange() を作成しました

関数はイベントテーブルから日付を受け取り、それを上記の関数に渡し、int 値を返します。以下のように関数を使用しています。

結果セットは要件を満たしていますが、パフォーマンスを向上させるための提案が必要です。これからどれを使うべきですか?

  • CHARINDEX、SUBSTIRNG、または PARSENAME のどの関数がパフォーマンスに適していますか?

  • 一括レコードの場合、それは良い考えですか?

どんな提案でも大歓迎です。