을 변경하려고 varchar 를 표시하지 않는 모든 소수점 또는 값을 후[마감]

0

질문

나는 추가 쿼리를 원래의 가치 Manager_ID 분야 은 varchar(250)value=31.0. 나는 변환해야 또는 캐스팅 값을 표시만'월 31 일'제거 후 모든 것 구분해서 사용하는 경우가 있습니다 가 모두 변&던지기 모두에게 정수하거나 이며,다. 저는 점점 다음과 같은 오류가:

변환하지 못했습으로 변환할 때 varchar 값이'31.0'데이터의 유형 int.

저는 다른 분야식에서 모두 성공 삽입하는 테이블과 데이터이다.

나는 무엇이 없는가?

감사

오류에 대한 MSG 변환(int,변환(decimal(9,2),[Manager_ID]))

Varchar 오류 변환하는 데이터 형식하는 숫자입니다.

INSERT IGNORE INTO [dbo].[tblUsers]
      ( [User_ID]
       ,[FirstName]
       ,[LastName]
       ,[FullName]
       ,[EMail]
       ,[UserRoles]
       ,[PostionType]
       ,[ManagerID]
       ,[UUID]
       ,[External_UUID]
       ,[home_Location_id]
       ,[Home_Organization_ID]
       ,[Record_types]
       ,[Location_Ceiling_ID]
       ,[Organization_Ceiling_ID]
       ,[Payroll_Identifier]
       ,[Created_Date]
       ,[Created_Time]
       ,[Update_Date]
       ,[Update_Time])   
Select  id-- User_ID
        ,first_name 
        ,last_name 
        ,full_name 
        ,email 
        ,role_id --UserRoles
        ,position --PositionType
        ,**cast(Manager_id as nvarchar(10)) as ManagerID**
        ,uuid 
        ,external_uuid 
        ,home_location_id
        ,home_organization_id
        ,[type] --Record_Types
        ,location_ceiling_id 
        ,organization_ceiling_id
        ,payroll_identifier 
        ,Left(Convert(varchar(20), created_at, 120),10) as Create_Date
        ,Right(convert(varchar(16), created_at, 120),5) as Create_Time
        ,left(Convert(varchar(20), updated_at, 120),10) as Update_Date
        ,Right(convert(varchar(16), updated_at, 120),5) as Update_Time
    from [stg].[Users]

최종 솔루션

,SUBSTRING(manager_id, 1, 
  CASE WHEN CHARINDEX('.',manager_id) - 1 < 0 
   THEN LEN(manager_id) 
   ELSE CHARINDEX('.',manager_id) - 1 END) as  ManagerID
sql sql-server tsql
2021-11-23 19:52:25
1

최고의 응답

1

변환 기능은 매우 유용합니다. 아래는 내가 무엇을 사용:

  INSERT IGNORE INTO [dbo].[tblUsers]
      ( [User_ID]
       ,[FirstName]
       ,[LastName]
       ,[FullName]
       ,[EMail]
       ,[UserRoles]
       ,[PostionType]
       ,[ManagerID]
       ,[UUID]
       ,[External_UUID]
       ,[home_Location_id]
       ,[Home_Organization_ID]
       ,[Record_types]
       ,[Location_Ceiling_ID]
       ,[Organization_Ceiling_ID]
       ,[Payroll_Identifier]
       ,[Created_Date]
       ,[Created_Time]
       ,[Update_Date]
       ,[Update_Time])   
Select  id as User_ID
        ,first_name 
        ,last_name 
        ,full_name 
        ,email 
        ,role_id as UserRoles
        ,position as PositionType
        ,convert(int, convert(decimal(9,2),[Manager_ID])) as ManagerID
        ,uuid 
        ,external_uuid 
        ,home_location_id
        ,home_organization_id
        ,[type] as Record_Types
        ,location_ceiling_id 
        ,organization_ceiling_id
        ,payroll_identifier 
        ,Left(Convert(varchar(20), created_at, 120),10) as Create_Date
        ,Right(convert(varchar(16), created_at, 120),5) as Create_Time
        ,left(Convert(varchar(20), updated_at, 120),10) as Update_Date
        ,Right(convert(varchar(16), updated_at, 120),5) as Update_Time
    from [stg].[Users]
2021-11-23 19:59:14

감사합니다,그러나 내가 시도하지 않고 이 성공은 볼 오류 메시지가 표시됩니다. "오류 변환하는 데이터 입력 varchar 하는 숫자입니다."
Karen Schaefer

을 확인하고,모든 기록에 ManagerID 열 진정한 숫자값? 이 오류가 있을 때 다른 문자열 값에서 필드하려고 할 때 변환합니다.
Lee Whieldon

원본 데이터 은 varchar(250)하고 싶 변환 값을 변경하는 수고를 제거수 때문에 문제가 될 것이다 외국인 핵심,다른 테이블이 있습니다. 나는 데이터를 확인에 대한 어떤 잘못된 데이터입니다.
Karen Schaefer

을 고려하면 소스 데이터 은 varchar,거의 모든 값이 존재할 수 있습니다. 최 사용하 try_convert(). 던지는 것이 아니라 오류가 NULL 값을 반환합니다 쉬운 것입을 함정입니다.
John Cappelletti

아래 참조 나의 질문에 대한 최종 결과
Karen Schaefer

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................