0

5T、6545H、25、S4444 のような値を持つ TCODE という列があります。ここで、返された 4 行のうち 3 行のみが必要であり、これらの列 T、H、または S の次の非数値ビットのみが必要です。テーブル名は CODES です。

疑似コード CODE から TCODE を選択します。ここでは、数値と非数値が混在している列の数値部分を取り除きます。

予想された結果

TCODE 
T
H
S

これどうやってするの ?

4

4 に答える 4

1

SQL Server では、おそらく PATINDEX を使用できます。

SELECT SUBSTRING(TCODE,PATINDEX('%[^0-9]%', TCODE),1)
FROM CODES
WHERE PATINDEX('%[^0-9]%',TCODE) > 0
于 2013-04-04T16:37:00.770 に答える
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 <> ''これをサブクエリに入れて、フィルタリングを選択できます。

于 2013-04-04T16:01:25.500 に答える