I found this to work:
SELECT uri, evFieldUri, evFieldVal , CAST(evFieldVal AS BIGINT) FROM TSEXFIELDV
WHERE URI > 0 AND uri IN
(
SELECT URI FROM TSEXFIELDV WHERE (ISNUMERIC(evFieldVal)=1) AND evFieldUri IN
( SELECT URI FROM TSEXFIELD WHERE exFieldFormat IN (1,11))
);
It Returns:
uri evFieldUri evFieldVal (No column name)
224016 3267 +000089243829 89243829
224019 2717 +000089243825 89243825
224472 3333 +000000000000000000000017 17
225052 3267 +000089243829 89243829
225055 2717 +000089243825 89243825
So, then I went back to:
SELECT uri, evFieldUri, evFieldVal , CAST(evFieldVal AS BIGINT) FROM TSEXFIELDV
WHERE URI > 0
AND ISNUMERIC(evFieldVal)=1 AND uri IN
(
SELECT URI FROM TSEXFIELDV WHERE evFieldUri IN
( SELECT URI FROM TSEXFIELD WHERE exFieldFormat IN (1,11))
);
And it returns this error:
Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to bigint.
So, I tried again, and this worked
SELECT uri, evFieldUri, evFieldVal,CAST(evFieldVal AS BIGINT), ISNUMERIC(evFieldVal) FROM TSEXFIELDV WHERE URI > 0 AND evFieldUri IN ( SELECT URI FROM TSEXFIELD WHERE exFieldFormat IN (1,11))
Hmm, so I logged out and came back and tried again, and it still worked.
So then I tried
SELECT uri, evFieldUri, evFieldVal,CAST(evFieldVal AS BIGINT) FROM TSEXFIELDV
WHERE URI > 0
AND evFieldUri IN ( SELECT URI FROM TSEXFIELD WHERE exFieldFormat IN (1,11))
AND ISNUMERIC(evFieldVal) = 1
And it fails.
It's got me completely confused?