使用Derby DB仅获取作为SQL查询结果的返回字符串的长度

时间:2019-05-24 02:27:57

标签: sql derby

我想测试从SQL查询返回的字符串的长度是否等于3。我正在使用DERBY DB。

我尝试过类似的事情:

ij> select * from tmpuser.friends where length(select distinct ss.schemaname from sys.sysschemas ss fetch next 1 row only)=3;

但是此查询无效。我想显示结果

select * from tmpuser.friends

仅当

length(select distinct ss.schemaname from sys.sysschemas ss fetch next 1 row only)=3;

是真的。

ij> select distinct ss.schemaname  from sys.sysschemas ss;
SCHEMANAME
--------------------------------------------------------------------------------------------------------------------------------
APP
NULLID
SQLJ
SYS
SYSCAT
SYSCS_DIAG
SYSCS_UTIL
SYSFUN
SYSIBM
SYSPROC
SYSSTAT
TMPUSER

12 rows selected
ij> select distinct ss.schemaname  from sys.sysschemas ss fetch next 1 row only;
SCHEMANAME
--------------------------------------------------------------------------------------------------------------------------------
APP

我要测试:“ APP”的长度等于3吗?

如果测试为false,我希望查询返回空结果,否则运行select语句。

1 个答案:

答案 0 :(得分:0)

我希望CASE表达式在这种情况下会有所帮助,您可以尝试以下查询吗:

select distinct CASE WHEN length(ss.schemaname) = 3 THEN ss.schemaname ELSE '' END AS SCHEMANAME
from sys.sysschemas ss 
fetch next 1 row only;
相关问题