J'essaie de comparer une table et une table de rapport comme une preuve de test, avec la table de rapport contenant un ID de 12 caractères plus leur date de naissance, et la table source ayant seulement un ID.sql gauche convertit char en int?
select cast(ID as char(12)) as ID into #IDnums
from members
where client='some_client'
select ID
from #IDnums
where ID not in (
select left(12,rtrim(ltrim(memberID)))
from report_table
)
memberID est un champ char (50). Quand je lance ce que j'obtiens l'erreur:
The conversion of the varchar value '74857358238119880131' overflowed an int column.
Je ne sais pas où le varchar ou int vient, ou comment résoudre ce problème.
Tag les DBMS que vous utilisez. Certains non-ANSI SQL là ... – jarlh
bien, vous utilisez mal 'LEFT', il est censé être la chaîne en premier, et la longueur plus tard:' left (rtrim (ltrim (memberID)), 12) ' – Lamak