এসকিএল কোয়েরি ব্যবহার করে একটি স্ট্রিং ইনটকে রূপান্তর করুন


168

এসকিউএল সার্ভার 2005 এ এসকিউএল কোয়েরি ব্যবহার করে একটি স্ট্রিংকে পূর্ণসংখ্যায় রূপান্তর করবেন কীভাবে?

উত্তর:


296

আপনি কাস্ট বা কনভার্ট ব্যবহার করতে পারেন :

SELECT CAST(MyVarcharCol AS INT) FROM Table

SELECT CONVERT(INT, MyVarcharCol) FROM Table

4
ক্ষেত্রগুলির একটি ক্ষেত্রটি অ-সংখ্যাসূচক হলে আমি কীভাবে ব্যতিক্রমটিকে ধরব / আটকাব? আমি এটি 0 এ রূপান্তরিত হওয়ার প্রত্যাশা করতাম
ক্লো

40
এটি খুঁজে select CASE WHEN ISNUMERIC('x') = 1 THEN CAST('x' AS INT) ELSE 0 END
ক্লো

9
কেবল একটি শব্দ: IsNumeric()কিছু বিকৃত ফলাফল আনতে পারে। এটি "-।" স্ট্রিংয়ের জন্য সত্য ফিরিয়ে দেবে, আপনি যখন এটি একটি সংখ্যায় কাস্ট করার চেষ্টা করবেন তখনও ত্রুটি ঘটবে।
কর্ট করুন

3
ইসনমিক "-" দিয়ে স্ট্রিংয়ের ক্ষেত্রে সত্য হবে কেবল যদি "-5" বা "-20" উদাহরণস্বরূপ স্ট্রিংয়ের সংখ্যা হয় তবে এটি "5-", "-2-1" এর মতো স্ট্রিংগুলির জন্য মিথ্যা হবে। সুতরাং যদি সংখ্যার () সত্য হয় তবে রূপান্তরটি কোনও ব্যতিক্রম ছোঁড়া উচিত নয়
প্রত্যুষ ধনুকা

11

এছাড়াও সচেতন থাকুন যে সংখ্যার স্ট্রিং থেকে আইএনটিতে রূপান্তর '56.72'করার সময় আপনি কোনও এসকিউএল ত্রুটির বিরুদ্ধে আসতে পারেন।

Conversion failed when converting the varchar value '56.72' to data type int.

এটি কাছাকাছি পেতে নিম্নলিখিত হিসাবে দুটি রূপান্তর করুন:

STRING -> NUMERIC -> INT

অথবা

SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT)

টেবিলএ থেকে টেবিলবিতে ডেটা অনুলিপি করার সময়, রূপান্তরটি অন্তর্নিহিত হয়, সুতরাং আপনার দ্বিতীয় রূপান্তরটির প্রয়োজন নেই (যদি আপনি নিকটে থাকা আইএনটিতে খুশি হন):

INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA

8

এসকিউএল সার্ভার ২০১২ দিয়ে শুরু করে, আপনি TRY_PARSE বা TRY_CONVERT ব্যবহার করতে পারেন ।

SELECT TRY_PARSE(MyVarcharCol as int)

SELECT TRY_CONVERT(int, MyVarcharCol)

মূল প্রশ্নের জন্য অবশ্যই এটি সঠিক উত্তর নয় যেহেতু এটি এসকিউএল সার্ভার ২০০৫ এর সাথে সম্পর্কিত, তবে এটি যেহেতু এটি 2019 এবং কম লোকেরা এসকিউএল সার্ভারের এমন পুরানো সংস্করণে আটকে রয়েছে, তাই এই উত্তরটি অবশ্যই সহায়ক।
shaune

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.