-1

実際、2つの質問、2つのクエリがあります。

  • で始まる数値'541'18 chars長いことを確認する必要があります。実際、SOの直後にスペースがあります。Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when....'541'....15RandomNumbers in (0,1,2,3,4,5,6,7,8,9).....an unknown printer took a galley of type and scrambled it to make a type specimen book.
  • 2番目:文字列の最後の18文字が数値であるかどうかを確認します(おそらく右トリムの後)

それでおしまい、

4

2 に答える 2

2

「「541」で始まる数値は18文字の長さです」

( text_col NOT LIKE '541%' OR LEN(text_col) = 18 )

「文字列の最後の18文字が数値であるかどうかを確認してください(おそらく右トリムの後)」

   ( RTRIM(text_col) LIKE '%[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' )
于 2012-04-17T09:50:06.367 に答える
1

あなたを始めるためのいくつかのデータ

declare @tmp table (value nvarchar(30))
insert @tmp values ('ABC123456789123456789'),('ABC12345678912345678A'),('ABC123456789123456D78')

見てRIGHTISNUMERIC

SELECT t.value, ISNUMERIC(RIGHT(t.value,18)+'.0e0') as [IsNumeric]
FROM @tmp t

与える:

value                          IsNumeric
------------------------------ -----------
ABC123456789123456789          1
ABC12345678912345678A          0
ABC123456789123456D78          0

編集:私はからのフィードバックに従って私の答えを修正しました、Damien_The_Unbelieverそしてそれは彼が提起する問題を修正しました

于 2012-04-17T09:47:17.043 に答える