セル内で値が繰り返されるフィールドを評価する方法はありますか?たとえば、誰かが数字キーを押さえていて、「00000」や「222222222」や「333」などのバリエーションを返す場合、値はこのフィールドでのみ数値にすることができます。私は、このようなパターンが発生する可能性があるフィールドで照会する方法を探しています。SQLを繰り返す文字列
0
A
答えて
0
以下はパターン、すなわち333 ...または123 ...または987 ...ラミー500 ...実行され、3者以上のグループのような、それの
思いを見出します。
Declare @Table table (col int)
Insert into @Table values
(4141243),(4290577),(98765432),(78635389),(4141243),(22222),(4290046),(55555555),(4141243),(6789),(77777),(45678),(4294461),(55555),(4141243),(5555)
Declare @Num table (Num int);Insert Into @Num values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9)
Select Distinct A.*
From @Table A
Join (
Select Patt=replicate(Num,3) from @Num
Union All
Select Patt=right('000'+cast((Num*100+Num*10+Num)+12 as varchar(5)),3) from @Num where Num<8
Union All
Select Patt=reverse(right('000'+cast((Num*100+Num*10+Num)+12 as varchar(5)),3)) from @Num where Num<8
) B on CharIndex(Patt,cast(col as varchar(25)))>0
戻り今
col
5555
6789
22222
45678
55555
77777
55555555
98765432
、あなたは、 "実行"(123 ...)」を識別するために気にちょうど次を削除しない場合は、次の
Union All
Select Patt=right('000'+cast((Num*100+Num*10+Num)+12 as varchar(5)),3) from @Num where Num<8
Union All
Select Patt=reverse(right('000'+cast((Num*100+Num*10+Num)+12 as varchar(5)),3)) from @Num where Num<8
0
することができます1つのケースの文でこれを行う
select val,
(case when len(val) > 1 and len(replace(val,left(val,1),'')) = 0 then 'Yes' else 'No' end) as repeating_characters
from (values
('00000'),
('222222222'),
('333'),
('11211')
) as q(val);
結果:
val repeating_characters
--------- --------------------
00000 Yes
222222222 Yes
333 Yes
11211 No
最初に、値の長さが1より大きいかどうかをチェックします。値が1より大きい場合は、空の文字列または1文字だけをチェックします。
その後、最初の文字を取り出し、その文字のすべてを値に置き換えません。
残りの長さが0より大きい場合、1種類以上の文字があります。
0
「3333」や「43333」のような完全なリピートだけに興味があるので、これはむしろ単純です。1文字よりも長い文字列を探します。最初の文字と等しいすべての文字を削除します。
select *
from mytable
where len(value) > 1 and len(replace(value, left(value,1), '')) = 0
関連する問題
- 1. jsonの文字列を繰り返す
- 2. 文字列を繰り返すC++
- 3. 繰り返し文字列を持つ文字列python
- 4. SQL複数の繰り返し文字列連結
- 5. 最大数Oracle SQLの繰り返し文字列
- 6. 文字列の繰り返し
- 7. Rubyの繰り返し文字列
- 8. ループ内の繰り返し文字列
- 9. フレンチ文字で文字列を繰り返し照合する
- 10. 文字列javaの特定の文字を繰り返す
- 11. 文字列内に繰り返し文字を見つける
- 12. で文字列の繰り返し文字を見つける
- 13. 複数のタプルを繰り返して文字列を返す
- 14. 最初の非繰り返し文字列を返します
- 15. 文字列を繰り返すことで 'n'文字列を出力する
- 16. NSDictionaryの文字列の配列を繰り返します。
- 17. sas列の値を繰り返します - 文字列操作
- 18. 文字列から部分文字列を繰り返し削除する
- 19. 文字列から繰り返し部分文字列を取得する
- 20. 文字列から繰り返し部分文字列を削除します。
- 21. 文字を繰り返す機能
- 22. 文字セットを繰り返す方法
- 23. 文字の周りに文字を繰り返しますか?
- 24. 文字列から部分文字列を削除し、繰り返し
- 25. 文字列で繰り返す語句を抽出するR
- 26. 改行文字を含む文字列の行を繰り返します。
- 27. Liveコードで文字列 'x'を繰り返す方法
- 28. バイナリツリーの繰り返し文字列の数を取得する
- 29. 辞書と文字列のリストを繰り返します。
- 30. アセンブリー(NASM)の文字列を繰り返し処理する
あまりにも遅く、わずか2分です。 LukStormsはちょうど同じ答えを与えました。 –
申し訳ありません。私にも起こった。 – LukStorms