এসকিউএল সার্ভারে স্ট্রিংটি কীভাবে ছাঁটাবেন?


132

এসকিউএল সার্ভার 2017 এ, আপনি এই বাক্য গঠনটি ব্যবহার করতে পারেন, তবে আগের সংস্করণগুলিতে নয়:

SELECT Name = TRIM(Name) FROM dbo.Customer;

উত্তর:


239
SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer

3
এটি করার সবচেয়ে সহজ উপায় এটি কেবল আপনার কলামটি ফিরে আসার কথা মনে রাখবেন
মাইল

1
@ মাইলস - আমি সম্পূর্ণতার জন্য উপনাম যুক্ত করেছি।
বেন হফস্টিন

2
আমি বুঝতে পারি যে এটি মানের ট্রিমিং ব্যবহার করার সঠিক উপায়। তবে আপনি কী ব্যাখ্যা করতে পারেন যে এলটিআরআইএম এবং আরটিআরআইএম উভয়ই কেন ব্যবহার করা উচিত যখন আমরা পরিবর্তে কেবল টিআরআইএম ব্যবহার করতে পারতাম?
কোড বুস্টার

6
@ কোডবেস্টার: এসকিউএল সার্ভারের ট্রিম ফাংশন সংজ্ঞায়িত করা হয়নি, এমনকি ২০১৪ সংস্করণেও।
alextansc

7
এসকিউএল সার্ভারের এখন 2017 সংস্করণে ট্রিম রয়েছে। ডকস.মাইক্রোসফট.ইন- ইউএস
t-

64

ডানদিকে ছাঁটাই করতে, ব্যবহার করুন:

SELECT RTRIM(Names) FROM Customer

বাম দিকে ছাঁটাতে, ব্যবহার করুন:

SELECT LTRIM(Names) FROM Customer

উভয় পক্ষের ট্রিম করতে, ব্যবহার করুন:

SELECT LTRIM(RTRIM(Names)) FROM Customer

5
ঘটনাক্রমে, মাইক্রোসফ্ট একটি ট্রিম ছাড়াই একটি এলটিআরআইএম এবং আরটিআরআইএম ফাংশন অন্তর্ভুক্ত করার কোনও সম্ভাব্য কারণ থাকতে পারে? এটা অদ্ভুত।
বেন হফস্টিন

কারণ এটি অনর্থক। আপনি LTRIM (RTRIM (var)) এর মাধ্যমে একই জিনিসটি সম্পন্ন করতে পারেন।
কিব্বি

52
হ্যাঁ, তবে এটি দুটি ফাংশন কল। আপনি বলতে পারেন যে এগুলি সমস্ত অপ্রয়োজনীয়, যেহেতু টিএসকিউএল-এ CHARINDEX এবং সাবস্ক্রটিং রয়েছে তবে এটি দেখার একটি বোকামি উপায়।
বেন হফস্টিন

9
এটি মোটেও নিরর্থক নয়। ট্রিআইএম নামে একটি একক ক্রিয়াকলাপের প্রস্তাব না দেওয়া ব্যবহারকারীর উপর সিনট্যাক্সের বোঝা চাপায়।
joelc

3
এটি সম্ভবত একটি তদারকি, বা এমন বৈশিষ্ট্যগুলির মধ্যে একটি ছিল যা অক্ষরেখা পেয়েছে কারণ প্রতিটি বৈশিষ্ট্যটি -100 পয়েন্টে শুরু হয় (যা সত্যিই কেবল অগ্রাধিকারযুক্ত বৈশিষ্ট্য সেট, আইএমএইচওর পরিবর্তে অন্তর্গত বৈশিষ্ট্য সেটগুলিতে নিয়ে যায়)।
স্যারাইড

7

আমি ধরে নিলাম এটি এক-অফ ডেটা স্ক্রাবিং অনুশীলন। একবার হয়ে গেলে, ভবিষ্যতে খারাপ ডেটা রোধ করতে আপনি ডাটাবেসের সীমাবদ্ধতাগুলি নিশ্চিত করেছেন যেমন ensure

ALTER TABLE Customer ADD
   CONSTRAINT customer_names__whitespace
      CHECK (
             Names NOT LIKE ' %'
             AND Names NOT LIKE '% '
             AND Names NOT LIKE '%  %'
            );

এছাড়াও অন্যান্য অক্ষরগুলি (ট্যাব, ক্যারেজ রিটার্ন, লাইন ফিড ইত্যাদি) অস্বীকার করার বিষয়টি বিবেচনা করুন যা সমস্যার কারণ হতে পারে।

এছাড়া মধ্যে যারা নাম বিভক্ত করতে একটি ভাল সময় হতে পারে family_name, first_nameইত্যাদি :)


4
SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,'   ',' '),CHAR(13), ' '),char(10), ' ')))
from author

0

এসকিএল সার্ভারে ২০০৮ r2 এস এস এক্সপ্রেশন সহ আমাদের ট্রিম ফাংশন রয়েছে।

এসকিউএল সার্ভার ইন্টিগ্রেশন সার্ভিসেস (এসএসআইএস) হ'ল মাইক্রোসফ্ট এসকিউএল সার্ভার ডাটাবেস সফ্টওয়্যারের একটি উপাদান যা ডেটা মাইগ্রেশন সংক্রান্ত বিস্তৃত পরিসীমা সম্পাদন করতে ব্যবহার করা যেতে পারে।

আপনি এই লিঙ্কে সম্পূর্ণ বিবরণ পেতে পারেন

http://msdn.microsoft.com/en-us/library/ms139947.aspx

তবে এই ফাংশনটির নিজস্ব কিছু সীমাবদ্ধতা রয়েছে যা সেই পৃষ্ঠায় এমএসডিএন দ্বারাও উল্লেখ করা হয়েছে। তবে এটি স্কিল সার্ভার ২০০৮ আর ২ এ রয়েছে

TRIM("   New York   ") .The return result is "New York".

3
এটি এমএস এসকিউএল-এর সাথে কোনও সম্পর্ক রাখে না এটি ডাটাবেসের সাথে বান্ডিলযুক্ত একটি পণ্য ছাড়া।
স্যারাইড

-1

"REPLACE" এর বর্ধিত সংস্করণ:

REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(REPLACE("Put in your Field name", ' ',' '))),'''',''), CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(160), '') [CorrValue]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.