উত্তর:
SELECT RIGHT(MyColumn, LEN(MyColumn) - 4) AS MyTrimmedColumn
সম্পাদনা: ব্যাখ্যা করতে, ডানদিকে 2 টি আর্গুমেন্ট লাগে - স্ট্রিং (বা কলাম) চালাতে, এবং অক্ষরের সংখ্যা ফিরে (স্ট্রিংয়ের "ডানদিকে" শুরু করে)। LEN কলামের ডেটার দৈর্ঘ্য ফিরিয়ে দেয় এবং আমরা চারটি বিয়োগ করি যাতে আমাদের রাইট ফাংশনটি বামদিকে 4 অক্ষর "পিছনে" ফেলে দেয়।
আশা করি এটি উপলব্ধিযোগ্য।
আবার সম্পাদনা করুন - আমি কেবল অ্যান্ড্রুয়ের প্রতিক্রিয়াটি পড়েছি এবং সে খুব ভালভাবেই সঠিকভাবে ইন্টারপ্রেস করেছে এবং আমার ভুল হতে পারে। যদি এটি হয় (এবং আপনি কেবল ডক্টরেটেড ফলাফলগুলি না দিয়ে টেবিলটি আপডেট করতে চান), আপনি এটি করতে পারেন:
UPDATE MyTable
SET MyColumn = RIGHT(MyColumn, LEN(MyColumn) - 4)
তিনি ডান ট্র্যাক উপর, কিন্তু তার সমাধান করতে হবে রাখা স্ট্রিং শুরুতে 4 অক্ষর, বাতিল বদলে 4 অক্ষর বলেন।
COL_LENGTH('MyTable', 'MyColumn')
পরিবর্তে আমি ব্যবহারটি শেষ করেছি LEN(MyColumn)
কারণ আমার ক্ষেত্রে আমি কলামের মধ্যে প্রকৃত সামগ্রীর আকার বিবেচনা না করেই প্রথম এন অক্ষরগুলি বাদ দিতে চেয়েছি, তবে এটি ব্যতীত অন্যভাবে কাজ করেছে!
Stuff(someColumn, 1, 4, '')
এটি বলছে, প্রথম 1
অক্ষরের অবস্থানের সাথে শুরু করে , 4
অক্ষরগুলিকে কিছুই না করে প্রতিস্থাপন করুন''
someColumn
কোনও সিটিই থেকে সাবলেট বা কোনওরকম কিছু করার মতো জটিল কিছু হয় তবে এটির জন্য এটি দুটিবার মূল্যায়নের প্রয়োজন হয় না।
আপনার কেন দুটি স্ট্রিং ফাংশন রয়েছে তাই কেন LEN ব্যবহার করবেন? আপনার যা দরকার তা হ'ল অক্ষর 5 টি ...
...SUBSTRING (Code1, 5, 8000)...
এটা চেষ্টা কর:
update table YourTable
set YourField = substring(YourField, 5, len(YourField)-3);
আপনি যা করার চেষ্টা করছেন তার একটি সাধারণ উপহাস এখানে রইল :)
CREATE TABLE Codes
(
code1 varchar(10),
code2 varchar(10)
)
INSERT INTO Codes (CODE1, CODE2) vALUES ('ABCD1234','')
UPDATE Codes
SET code2 = SUBSTRING(Code1, 5, LEN(CODE1) -4)
সুতরাং, আপনি যে ক্ষেত্রটি ছাঁটাতে চান তার বিপরীতে সর্বশেষ বিবৃতিটি ব্যবহার করুন :)
সাবস্ট্রাকশন ফাংশনটি কোড 1 টি ছাঁটাই করে, ফিফথ অক্ষর থেকে শুরু করে, এবং CODE1 কম 4 এর দৈর্ঘ্যের জন্য অবিরত থাকবে (শুরুতে বাদ দেওয়া অক্ষরের সংখ্যা)।
আপনি এসকিউএল এ এটি করতে পারেন ..
substring(StudentCode,4,len(StudentCode))
বাক্য গঠন
substring (ColumnName,<Number of starting Character which u want to remove>,<length of given string>)
মানগুলির দৈর্ঘ্য 4-এর কম হতে পারে যখন শীর্ষের উত্তরটি উপযুক্ত নয়।
আপনি "অবৈধ দৈর্ঘ্যের প্যারামিটারটি সঠিক ফাংশনে পাস করেছেন" পাবেন কারণ এটি নেতিবাচক গ্রহণ করে না। একটি CASE বিবৃতি ব্যবহার করুন:
SELECT case when len(foo) >= 4 then RIGHT(foo, LEN(foo) - 4) else '' end AS myfoo from mytable;
4 টিরও কম মানগুলি ত্রুটির পরিবর্তে নীচে অবাক করা আচরণ দেয় কারণ RIGHT এ নেতিবাচক মানগুলি পুরো স্ট্রিংয়ের পরিবর্তে প্রথম অক্ষরকে ছাঁটাই করে। RIGHT(MyColumn, -5)
পরিবর্তে এটি আরও বোধগম্য হয় ।
আপনি "-5" এর পরিবর্তে শীর্ষ উত্তরের "দৈর্ঘ্য - 5" ব্যবহার করার সময় আপনি কী পান তার তুলনা করার একটি উদাহরণ:
create temp table foo (foo) as values ('123456789'),('12345678'),('1234567'),('123456'),('12345'),('1234'),('123'),('12'),('1'), ('');
select foo, right(foo, length(foo) - 5), right(foo, -5) from foo;
foo len(foo) - 5 just -5
--------- ------------ -------
123456789 6789 6789
12345678 678 678
1234567 67 67
123456 6 6
12345
1234 234
123 3
12
1
অন্তর্নির্মিত ট্রিম ফাংশন রয়েছে যা উদ্দেশ্যটির জন্য উপযুক্ত।
SELECT trim(both 'ag' from 'asdfg');
btrim
-------
sdf
(1 riga)
http://www.postgresql.org/docs/8.1/static/functions-string.html
ভাগ করে নেওয়া ভাল হবে, ডিবি 2 ব্যবহারের জন্য:
INSERT(someColumn, 1, 4, '')
Stuff
DB2- এ সমর্থিত নয়