5T、6545H、25、S4444 のような値を持つ TCODE という列があります。ここで、返された 4 行のうち 3 行のみが必要であり、これらの列 T、H、または S の次の非数値ビットのみが必要です。テーブル名は CODES です。
疑似コード CODE から TCODE を選択します。ここでは、数値と非数値が混在している列の数値部分を取り除きます。
予想された結果
TCODE
T
H
S
これどうやってするの ?
5T、6545H、25、S4444 のような値を持つ TCODE という列があります。ここで、返された 4 行のうち 3 行のみが必要であり、これらの列 T、H、または S の次の非数値ビットのみが必要です。テーブル名は CODES です。
疑似コード CODE から TCODE を選択します。ここでは、数値と非数値が混在している列の数値部分を取り除きます。
予想された結果
TCODE
T
H
S
これどうやってするの ?
SQL Server では、おそらく PATINDEX を使用できます。
SELECT SUBSTRING(TCODE,PATINDEX('%[^0-9]%', TCODE),1)
FROM CODES
WHERE PATINDEX('%[^0-9]%',TCODE) > 0
私の頭に浮かぶ方法は、かなり野蛮です:
select replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(tcode, '0', ''),
'1', 0),
'2', 0),
'3', 0),
'4', 0),
'5', 0),
'6', 0),
'7', 0),
'8', 0),
'9', 0) as theletters
. . .
where theletters <> ''
これをサブクエリに入れて、フィルタリングを選択できます。