我需要查询数据库的行结果大约是300,000行(正在增长)。
该调用是从我的主视图中的控制器(MVC .net核心)发出的,其中一列采用以下格式:
我需要剥去[]或[G]
我是否可以在数据库级别将其删除,例如:
SELECT [Id]
,[Name]
,[Text] = Right([Text], LEN([Text]) - 8)
FROM MyDatabase
这似乎是不正确的-尽管可以使用-我必须输入一个神奇的数字8。如果将来这种情况发生变化怎么办?开发人员坚持要没有没有意义的数字吗?
或者在控制器中执行:
viewModel.List = data.Select(val => new ViewModel
{
Id = val. Id,
Name = val.Name,
Text = val.Text.Substring(val.Text.IndexOf(']'))
}).ToList();
如果您可以遮挡一些光线或有更好的主意,我将不胜感激。
根据您对=
和[]
的使用情况,可以很安全地猜测您正在使用的数据库是SQL Server。
在这种情况下,您可以在数据库中使用charindex
-代替8
使用charindex(']', [Text])
:
SELECT [Id]
,[Name]
,[Text] = RIGHT([Text], LEN([Text]) - CHARINDEX(']', [Text]))
FROM MyDatabase
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句