用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)));
链接地址: http://www.djcxy.com/p/68835.html