3

我知道在 SQLite 中,我们使用LENGTH函数而不是len. 但是当我想将LENGTH函数与子查询一起使用时:

select length(select name from tblNames where name=1)

我收到一个错误。这是表达式的 Microsoft SQL 版本:

iif(len((select  BilgiAcik  from DigerBilg  where BilgTip=12  and BilgDgr=Cstr(Dr.Fr)))>0,( select  BilgiAcik  from DigerBilg  where BilgTip=12 and BilgDgr=Cstr(Dr.Fr)),Cstr(Dr.Fr))  as Fr,

我将上述表达式转换为 SQLite,如下所示:

(case length((select  BilgiAcik  from DigerBilg where BilgTip=12 and BilgDgr=CAST(Dr.Fr as TEXT))>0 ( select  BilgiAcik  from DigerBilg  where BilgTip=12 and BilgDgr=Cstr(Dr.Fr)) else CAST(Dr.Fr as TEXT) end) as Fr,

我做错了什么?我不能只使用该函数的SUBSELECT查询吗?LRNGTH关于如何解决这个问题的任何建议?

4

1 回答 1

2

您将需要重组您的陈述,使其更类似于以下内容。

select length(name) from (select name from tblnames where name=1);

如果您愿意,您可以通过为子选择设置别名来更轻松地管理它。

select length(t.name) from (select name from tblnames where name=1) as t;
于 2011-09-24T08:59:01.573 回答