0

1/2、9/6、14A など、いくつかの「追加記号」を含む数値 nvarchar 値を持ちます。それらは常に数字で始まります。
この「余分なシンボル」の値を開始から最初の非int文字のインデックスまで部分文字列にするにはどうすればよいですか? 例の行は1, 9, 14 で
なければなりませ ん

SUBSTRING(Value, 0, CHARINDEX(Value, /*Here must be all symbols except numbers*/))
4

3 に答える 3

2

クエリを試してください:

SELECT LEFT(ColumnName,PATINDEX('%[^0-9]%', ColumnName+'a')-1) FROM TABLE
于 2012-09-13T11:37:19.827 に答える
0

テーブルのすべての行に文字を追加しないようにする別のオプション:

SELECT SUBSTRING(col, 1, COALESCE(NULLIF(PATINDEX('%[^0-9]%', col)-1, -1), 255)) 
  FROM dbo.mytable;
于 2012-09-13T12:13:35.377 に答える
0

これを試して:

SELECT CASE PATINDEX('%[^0-9]%', ColumnName) WHEN  0 THEN ColumnName
ELSE LEFT(ColumnName,PATINDEX('%[^0-9]%', ColumnName)-1) END
于 2012-09-13T11:57:03.890 に答える