将过程代码转换为 SQL 的行为最近引起了我的兴趣。我知道并不是所有的东西都可以用图灵完备的程序语言来表达。
但是,如果您有特殊用途的程序语言怎么办?例如转换这样的东西:
foreach(var row in Table){
if(row.FirstName=="Foo"){
yield new {row.TableRID};
}
}
进入这个:
select TableRID from Table where FirstName='Foo'
这样的东西有名字吗?
此外,在我的伪代码中假设它row
是不可变的,并且不可能做类似Table[0].FirstName...
和其他显然没有(简单)转换为 ANSI SQL 的事情。
谁能给我这个名字?