को बदलने की कोशिश कर एक varchar प्रदर्शन नहीं करने के लिए किसी भी दशमलव अंक या मूल्यों के बाद [बंद]

0

सवाल

मैं एक अपेंड क्वेरी जहां मूल मूल्य के Manager_ID क्षेत्र में एक varchar(250) मूल्य = 31.0. मैं बदलने की जरूरत है या कच्चा मूल्य प्रदर्शित करने के लिए केवल '31' और सब कुछ को हटाने के बाद दशमलव. मैं दोनों की कोशिश की परिवर्तित और कलाकारों दोनों के लिए एक पूर्णांक या nvarchar, सफलता के बिना. मैं निम्नलिखित त्रुटि हो रही:

रूपांतरण में विफल रहा है जब परिवर्तित varchar मान '31.0' करने के लिए डेटा प्रकार int.

मैं के साथ खेला जाता है अलग अलग क्षेत्र प्रकार के बिना सफलता में दोनों का सम्मिलित मेज और डेटा तालिका.

मैं क्या कर रहा हूँ याद आ रही है?

धन्यवाद

त्रुटि संदेश के लिए कन्वर्ट(पूर्णांक परिवर्तित(दशमलव(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(). फेंकने की बजाय एक त्रुटि है, यह एक अशक्त मूल्य वापस हो जाएगा, जो करने के लिए आसान जाल है.
John Cappelletti

के नीचे देख मेरे सवाल के लिए अंतिम परिणाम
Karen Schaefer

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में