sql - টি-এসকিউএল একটি স্ট্রিং শেষ চরিত্র মুছে ফেলুন?




sql-server tsql (14)

আমি কিভাবে T-SQL একটি স্ট্রিং শেষ চরিত্র মুছে ফেলতে পারি?

উদাহরণ স্বরূপ:

'TEST STRING'

ফিরে:

'TEST STRIN'

আপনার কলমণ text এবং varchar না হলে, আপনি এই ব্যবহার করতে পারেন:

SELECT SUBSTRING(@String, 1, NULLIF(DATALENGTH(@String)-1,-1))

আপনার স্ট্রিং খালি হয়,

DECLARE @String VARCHAR(100)
SET @String = ''
SELECT LEFT(@String, LEN(@String) - 1)

তারপর এই কোডটি ত্রুটি বার্তা 'ত্রুটিযুক্ত ফাংশন পরামিতি পদার্থ প্রেরণ করা হবে।'

আপনি এভাবে এটি পরিচালনা করতে পারেন:

SELECT LEFT(@String, NULLIF(LEN(@String)-1,-1))

এটি সর্বদা ফলাফল প্রদান করবে, এবং খালি স্ট্রিং ক্ষেত্রে নুল।


আপনি যদি তিনটি ধাপে এটি করতে চান তবে বিপরীত-স্টাফ-রিভার্সের পরিবর্তে, আপনার তালিকা বিভাজকটি এক বা দুটি স্থান হতে পারে। তারপরে পূর্ববর্তী স্থানগুলি ট্রিম করতে RTRIM ব্যবহার করুন এবং 'স্পেস' সহ ডবল স্পেসগুলি প্রতিস্থাপন করতে প্রতিস্থাপন করুন।

select REPLACE(RTRIM('a  b  c  d  '),'  ', ', ')

তবে, আপনার মূল স্ট্রিং অভ্যন্তরীণ স্পেস থাকতে পারে যদি এটি একটি ভাল ধারণা না।

কর্মক্ষমতা সম্পর্কে নিশ্চিত না। প্রতিটি প্রতিলিপি স্ট্রিংয়ের একটি নতুন অনুলিপি তৈরি করে, কিন্তু STUFF তৃতীয় স্থান থেকে দ্রুততর হয়।

এই দেখুন


আমার উত্তর গৃহীত উত্তর অনুরূপ, কিন্তু এটি নল এবং খালি স্ট্রিং চেক।

DECLARE @String VARCHAR(100)

SET @String = 'asdfsdf1'

-- If string is null return null, else if string is empty return as it is, else chop off the end character
SET @String = Case @String when null then null else (case LEN(@String) when 0 then @String else LEFT(@String, LEN(@String) - 1) end ) end

SELECT @String


উৎস টেক্সট / var নল বা খালি হতে পারে:

প্রতিলিপি নির্বাচন করুন (সাবস্ট্রিং (রিভার্স (@ এ), 2, 9999))


এটা চেষ্টা কর

DECLARE @String VARCHAR(100)
SET @String = 'TEST STRING'
SELECT LEFT(@String, LEN(@String) - 1) AS MyTrimmedColumn

এটা চেষ্টা কর,

DECLARE @name NVARCHAR(MAX) SET @name='xxxxTHAMIZHMANI****'SELECT Substring(@name, 5, (len(@name)-8)) as UserNames

এবং আউটপুট মত হবে, থিমিজমনি


এটি ব্যবহার করে দেখুন:

  DECLARE @String NVARCHAR(100)
    SET @String = '12354851'
    SELECT LEFT(@String, NULLIF(LEN(@String)-1,-1))

যদি কিছু কারণে আপনার কলাম লজিক জটিল হয় (কেস যখন ... তারপর ... অন্য ... শেষ), তাহলে উপরের সমাধানগুলি আপনাকে লেন () ফাংশনে একই যুক্তিটি পুনরাবৃত্তি করতে বাধ্য করে। একই যুক্তি দ্বন্দ্ব একটি জগাখিচুড়ি হয়ে। যদি এই ক্ষেত্রে হয় তবে এটি মূল্যহীন একটি সমাধান। এই উদাহরণ শেষ অবাঞ্ছিত কমা থেকে পরিত্রাণ পায়। অবশেষে আমি reverseSE ফাংশন জন্য একটি ব্যবহার খুঁজে পাওয়া যায় নি।

select reverse(stuff(reverse('a,b,c,d,'), 1, 1, ''))

শেষ চরিত্র পান

Right(@string, len(@String) - (len(@String) - 1))

declare @string varchar(20)= 'TEST STRING'
Select left(@string, len(@string)-1) as Tada

আউটপুট:

Tada
--------------------
TEST STRIN

select left('TEST STRING', len('TEST STRING')-1)

@result = substring(@result, 1, (LEN(@result)-1))





tsql