問題タブ [patindex]

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 投票する
2 に答える
1059 参照

sql-server - MS SQL Server 2008 charindex が char 文字列フィールドで 0 を返す

文字列値の間に 2 つのスペースがあるフィールドを分割する方法を考えています。

フィールド コンテンツの例

charindex と patindex はどちらも、テーブルの varchar フィールドを再度使用すると 0 を返しますが、varchar(max) 変数を宣言してそれでテストすると位置を返します。

テーブル varchar(max) フィールドでこれを機能させる方法がわかりません。

この作品

これは機能しません。各レコードの char 文字列値に対して 0 を返します

誰でも理由がわかりますか?

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

string - T-SQLは文字列の先頭のゼロを削除します

私はこのような文字列を持っています:

00 876H873 - 876H873が欲しい

00 876 876500 - 876 876500 が欲しい

0000 HUJ8 9IU877 8UJH - 欲しい HUJ8 9IU877 8UJH

私が使う:

これは、最初と 2 番目のケースで機能します。つまり、スペースがない場合、またはスペースが 1 つだけの場合です。ただし、複数のスペースがある場合 (3 番目の例など)、正しい答えが得られません。

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

sql-server - PATINDEX 列のすべての値

列 table1.id = table2.id を持つ table1 からすべての行を削除するクエリを作成しています

table1.id 列は、次のような xml 形式の nvarchar(max) です。

編集: id 列は巨大な XML の一部にすぎないため、終了タグが開始タグと一致しない場合があります。

name.nodes を使用してみましたが、xml 列にのみ適用され、列のデータ型を変更することは選択できません。これまでのところ、これは使用している私のコードですPATINDEX

しかし、私が必要とするのは、次のような table2.id からすべての値を検索することです:

sp_executesql および/または while ループのような任意のアプローチが適切でしょうか、または patindex を使用するよりも優れたアプローチはありますか? ありがとう!

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

sql - LEFT または SUBSTRING 関数に無効な長さパラメーターが渡されました 4

ここに同様の質問があることは承知していますが、どれもまさに私が必要としているものではありません。その一部がビューを実行するSQL sprocがあります。デザインと機能が同一の 3 つのデータベースがありますが、データが異なり、そのうちの 1 つだけでこのエラーが発生します。エラーが発生した DB からビューを取得し、他の DB で実行すると、問題なく実行されます。最も奇妙な部分は、このビューが機能し、その後停止し、修正されて再び機能し始め、一部のデータに変更を加え始めたときに再び停止したことです。

この特定の行に要約しました。

興味深いのは、変更'%-%すると'%'エラーがなくなり、SPROC が適切に実行されることです。

5 つの質問があります。

  1. '%-%'があるのにないのに、なぜこのエラーが発生するの'%'ですか? 違いは何ですか?一方を使用することでどのような変更が行われますか?

  2. このエラーはどういう意味ですか?

  3. まったく同じビューが、他の 2 つの同一のデータベースでは適切に機能するのに、このデータベースでは機能しないのはなぜですか?

  4. なぜこれは動作していた後に動作を停止し、何らかの方法で修正してから、何らかのデータ操作の後に再び壊れてしまうのでしょうか?

  5. PATINDEX 以外で使用できるより良い方法はありますか?

どんな助けでも大歓迎です。ありがとうございました。

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

sql-server - SQL Server 文字列を検索して、別のテーブルの値を探します

name名前の前後にランダムな文字がある列を持つテーブルがあります。

表A

そして、同じDBに次の名前を持つ別のテーブルがあります:

表 B :

これは 30k 行でこのように続きます。または、非常に迅速に何かをハードコードするだけです。テーブルBの各値について、テーブルAの「名前」列の各文字列を検索し、見つかった場合は新しい列に名前を返します。

これは UDF になると思いますが、これで問題ありません。このシナリオで patindex を使用する方法、またはそれが正しいアプローチであるかどうかはわかりません。

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

sql - VARCHAR から数値を抽出する

数値を抽出しようとしているテーブル[Comment]にタイプの列があります。VARCHAR(255)数字は常に 12 桁ですが、通常は同じ場所にはありません。中には 12 桁の数字が複数あるものもありますが、これは問題ありませんが、必要なのは最初の数字だけです。

を使用してみましPATINDEX('%[0-9]%',[Comment])たが、12 桁の要件を設定する方法がわかりません。

私が扱っているデータの例は次のとおりです。

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

sql - Patindex と Charindex は、私が求めている以上のものを提供してくれます

私は文字列を持っています:

Y の後に数値を返し、次の SQL を (例として) 使用したいと思います。

しかし、私が得る結果は次のとおりです。

確かに、最後の CHARINDEX は最初のスペースまで表現を与えているはずですか? Yの後の数字だけを取得するように微調整するにはどうすればよいですか?