1/2、9/6、14A など、いくつかの「追加記号」を含む数値 nvarchar 値を持ちます。それらは常に数字で始まります。
この「余分なシンボル」の値を開始から最初の非int文字のインデックスまで部分文字列にするにはどうすればよいですか? 例の行は1, 9, 14 で
なければなりませ
ん
SUBSTRING(Value, 0, CHARINDEX(Value, /*Here must be all symbols except numbers*/))
1/2、9/6、14A など、いくつかの「追加記号」を含む数値 nvarchar 値を持ちます。それらは常に数字で始まります。
この「余分なシンボル」の値を開始から最初の非int文字のインデックスまで部分文字列にするにはどうすればよいですか? 例の行は1, 9, 14 で
なければなりませ
ん
SUBSTRING(Value, 0, CHARINDEX(Value, /*Here must be all symbols except numbers*/))
クエリを試してください:
SELECT LEFT(ColumnName,PATINDEX('%[^0-9]%', ColumnName+'a')-1) FROM TABLE
テーブルのすべての行に文字を追加しないようにする別のオプション:
SELECT SUBSTRING(col, 1, COALESCE(NULLIF(PATINDEX('%[^0-9]%', col)-1, -1), 255))
FROM dbo.mytable;
これを試して:
SELECT CASE PATINDEX('%[^0-9]%', ColumnName) WHEN 0 THEN ColumnName
ELSE LEFT(ColumnName,PATINDEX('%[^0-9]%', ColumnName)-1) END