29

と呼ばれる列がありますがstudentID何百万ものレコードがあり、どういうわけかアプリケーションが列に任意のテキストを入力しました。

検索方法:

SELECT *
  FROM STUDENTS
 WHERE STUDENTID CONTAINS TEXT
4

6 に答える 6

45

データベース モデリングの問題は脇に置いておきます。私はあなたが試すことができると思います

SELECT * FROM STUDENTS WHERE ISNUMERIC(STUDENTID) = 0

ただしISNUMERIC、次のような数値のように見える値に対しては 1 を返します-1.0e5

数字のみの学生 ID を除外したい場合は、次のようにしてみてください

SELECT * FROM STUDENTS WHERE STUDENTID LIKE '%[^0-9]%'
于 2013-06-26T14:06:43.823 に答える
21

以下のスクリプトを試してください:

以下のコードは、studentid 列のデータ型が varchar の場合にのみ機能します

SELECT * FROM STUDENTS WHERE STUDENTID like '%Searchstring%'
于 2013-06-26T14:04:52.977 に答える
12

たとえば、構築を試してください(がタイプであるとLIKE仮定するなど)StudentIdCharVarChar

  select * 
    from Students
   where StudentId like '%' || TEXT || '%' -- <- TEXT - text to contain
于 2013-06-26T14:04:35.727 に答える
0

これを試して:

SElECT * FROM STUDENTS WHERE LEN(CAST(STUDENTID AS VARCHAR)) > 0

これにより、STUDENTID にテキストが含まれる行が取得されます

于 2013-06-26T14:37:40.943 に答える