मैं एक अपेंड क्वेरी जहां मूल मूल्य के 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