我想测试从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语句。
答案 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;