0

I need to trim the date from a text string in the function call of my app.

The string comes out as text//date and I would like to trim or replace the date with blank space. The column name is overall_model and the value is ford//1911 or chevy//2011, but I need the date part removed so I can loop over the array or list to get an accurate count of all the models.

The problem is that if there is a chevy//2011 and a chevy//2010 I return two rows in my table because of the date. So if I can remove the date and loop over them I can get my results of chevy there are 23 chevy models.

4

1 に答える 1

2

しばらくSybaseを使用していませんが、その文字列関数はMSSQLServerと非常によく似ていることを覚えています。

overall_model常に「//」が含まれている場合は、を使用charindexして区切り文字の位置を返し、そのsubstring前の「テキスト」を取得します。次に、それをCOUNTと組み合わせます。CASE(「//」が常に存在するとは限らない場合は、ステートメントも追加する必要があります)。

   SELECT SUBSTRING(overall_model, 1, CHARINDEX('/', overall_model)-1) AS Model
          , COUNT(*) AS NumberOfRecords
   FROM  YourTable
   GROUP BY SUBSTRING(overall_model, 1, CHARINDEX('/', overall_model)-1)

ただし、理想的には「テキスト」と「日付」は別々に保存する必要があります。これにより、柔軟性が向上し、一般的にパフォーマンスが向上します。

于 2012-07-15T21:01:15.850 に答える