2011-09-24 4 views
3

나는 SQLite에서 len 대신 LENGTH 함수를 사용한다는 것을 알고 있습니다. 내가 지금처럼 하위 쿼리로 LENGTH 기능을 사용할 때 :SQL 표현식에 SUBSELECT 쿼리가있는 LENGTH 함수가있는 경우 SQL 표현식을 변환하십시오.

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

나는 오류가 발생합니다.

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, 

내가 잘못하고있어 여기에서 표현의 마이크로 소프트 SQL 버전은 무엇입니까? LRNGTH 함수와 함께 SUBSELECT 쿼리 만 사용할 수 있습니까? 이 문제를 해결하는 방법에 대한 제안?

답변

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; 
+1

고맙습니다. –

관련 문제