用LINQ替换字符串值

时间:2013-06-18 14:59:36

标签: c# linq oracle10g

我有以下包含列名的字符串:

string colsToSelect;

此字符串包含列名称(例如:col1 + col2 + col3 + col4 + col5或col1 + col3),在这些列中有数值。

我使用它来从数据库中获取所有这些列的总数。

SELECT " + colsToSelect + " AS totalVolume " + "FROM myTable

但是我需要为每个列添加nvl(col1,0),因为这些列可能包含null。

我这样做了:

    colsToSelect = colsToSelect.Replace("+", "+nvl(");
    colsToSelect = colsToSelect.Replace("+", ",0)+");
    colsToSelect = "nvl(" + colsToSelect;
    colsToSelect = colsToSelect + ",0)";

这给了我nvl(col1, 0) + nvl(col2, 0)等等。但是我想知道是否有更好的方法来实现这一点,可能使用LINQ或者使用sql?

1 个答案:

答案 0 :(得分:2)

您可以再次使用string.Split,再使用string.Join

colsToSelect = string.Join("+", 
                    colsToSelect.Split('+')
                                .Select(x => string.Format("nvl({0}, 0)", x)));