繁体   English   中英

用LINQ替换字符串值

[英]Replace string values with LINQ

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

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?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM