我想通过将函数应用于B列来更新A列的值。
是否有简单的表格解决方案:
string[] abc = new string[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" };
string x = "1g";
string y = "2b";
string strx = Regex.Match(x, @"\d+").Value;
string stra = Regex.Match(x, @"[a-z]+").Value;
int intx = Int32.Parse(strx);
string stry = Regex.Match(y, @"\d+").Value;
string strb = Regex.Match(x, @"[a-z]+").Value;
int inty = Int32.Parse(stry);
Console.WriteLine(strx);
Console.WriteLine(stra);
Console.WriteLine("----");
int len = inty - intx + 1;
List<string> xycombinations = new List<string>();
string[] ycombinations = new string[] { };
if (len >= 0)
{
int starting = 0;
while (abc[starting] != stra)
{
starting = starting + 1;
}
while (starting < abc.Length)
{
xycombinations.Add(intx.ToString() + abc[starting]);
starting = starting + 1;
}
for (int i = 0; i < xycombinations.Count; i++)
{
Console.WriteLine(xycombinations[i]);
}
}
Console.ReadLine();
答案 0 :(得分:2)
是的,有一种方法可以在Knex中执行此操作。
对于在Knex中没有明确支持的SQL函数,您可以使用knex.raw(SQLstring, parmArray)
封装SQL代码段或knex.schema.raw(...)
来生成整个SQL语句。并且您使用单个问号?
进行值替换,并使用双重问号??
进行字段标识符替换。 (see link)
所以SQL:UPDATE table SET colA = func(colB)
...可以通过包含SQL片段来生成:(你很接近)
knex('table')
.update({
colA: knex.raw( 'func(??)', ['colB'] )
})
...或者作为完整的原始SQL:
knex.schema.raw( 'UPDATE table SET ?? = func(??)', ['colA', 'colB'] )
干杯,加里。