我试图将公用表表达式连接到现有表(table1),如下所示.
select column1, column2 from table1
left outer join
;with cte as (
select column1, column2 from table2)
select column1, column2 from cte
on table1.column1 = cte.column1
Run Code Online (Sandbox Code Playgroud)
错误是:
我究竟做错了什么?我应该使用CTE来完成这项任务吗?
我正在阅读Go的io包的源代码,我遇到了一个我不完全理解的片段.这里是
func WriteString(w Writer, s string) (n int, err error) {
if sw, ok := w.(stringWriter); ok {
return sw.WriteString(s)
}
return w.Write([]byte(s))
}
Run Code Online (Sandbox Code Playgroud)
哪里
type stringWriter interface {
WriteString(s string) (n int, err error)
}
type Writer interface {
Write(p []byte) (n int, err error)
}
Run Code Online (Sandbox Code Playgroud)
类型断言w.(stringWriter)断言w的动态类型(即Writer)实现了stringWriter接口.鉴于stringWriter和Writer的类型定义,我不知道这是如何可行的.假设这段代码是正确的,我错过了什么?