使用Sybase和ColdFusion拆分列值

时间:2012-07-15 18:55:07

标签: coldfusion sybase coldfusion-8

我需要在我的应用程序的函数调用中修剪文本字符串中的日期。

字符串以text//date形式出现,我想用空格修剪或替换日期。列名称为overall_model,值为ford//1911chevy//2011,但我需要删除日期部分,以便我可以遍历数组或列表以获得所有模型的准确计数

问题是,如果有chevy//2011chevy//2010,由于日期的原因,我会在表格中返回两行。因此,如果我可以删除日期并循环显示它们,我可以得到我的雪佛兰有23种雪佛兰模型的结果。

1 个答案:

答案 0 :(得分:2)

我暂时没有使用Sybase,但我记得它的字符串函数与MS SQL Server非常相似。

如果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)

但是,理想情况下,“文本”和“日期”应分开存储。这将提供更大的灵活性和通常更好的性能。