Apex
»
პროგრამირება
»
SQL Server
»
როგორ ვიპოვოთ რაიმე რიცხვის ციფრების ჯამი
Rank: Administration
Medals: Groups: Administrators
Joined: 10/20/2012 Posts: 106 Points: 327 Location: Tbilisi
Thanks: 0 times Was thanked: 0 time(s) in 0 post(s)
|
ხანდახან საჭირო ხდება ვიპოვოთ რაიმე რიცხვის ციფრების ჯამი. ამ ოპერაციის შესასრულებლად წარმოგიდგენთ მარტივ სკალარულ ფუნქციას.
BB კოდი: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[fn_add_digits] ( @in int ) RETURNS int AS BEGIN DECLARE @out int SET @out = 0 WHILE @in >= 10 BEGIN SET @out = @out + (@in % 10) SET @in = @in / 10 END RETURN @out + @in END
ქუოტა (Quote): -- შესრულების მაგალითი SELECT [dbo].[fn_add_digits](1234) as result -- რეზულტატი ტოლია 10-ის (1+2+3+4)
როგორც ხედავთ ფუნქცია მართლაც მარტივია და სკალარული ფუნქციის გამოყენებით ამის გაკეთება არც ისე რთულია. საინტერესო იქნება იგივე ოპერაცია შევასრულოთ SELECT ბრძანების გამოყენებით, რის მაგალითსაც მოგიყვანთ ქვემოთ.
BB კოდი:DECLARE @in int = 1234; WITH ct([col_in]) AS (SELECT @in AS [col_in]), ct1([col_out], [col_in]) AS (SELECT 0 AS [col_out], [col_in] FROM ct UNION ALL SELECT [col_out] + [col_in] % 10 AS [col_out], [col_in] / 10 AS [col_in] FROM ct1 WHERE ([col_in] >= 1)) SELECT TOP (1) [col_out] FROM ct1 ORDER BY [col_out] DESC
|
|
|
|
|
Apex ltd. http://www.apex.ge
|
|
Apex
»
პროგრამირება
»
SQL Server
»
როგორ ვიპოვოთ რაიმე რიცხვის ციფრების ჯამი
Forum Jump
თქვენ არ შეგიძლიათ დაწეროთ ახალი თემა ამ ფორუმში.
თქვენ არ შეგიძლიათ გასცეთ პასუხი, თემას, ამ ფორუმში .
თქვენ არ შეგიძლიათ წაშალოთ თქვენი პოსტი ამ ფორუმში.
თქვენ არ შეგიძლიათ ჩაასწოროთ თქვენი პოსტი ამ ფორუმში.
თქვენ არ შეგიძლიათ შექმნათ გამოკითხვა ამ ფორუმში.
თქვენ არ შეგიძლიათ ხმის მიცემა ამ ფოუმში.
YAFVision Theme by Jaben Cargman (Tiny Gecko)Powered by YAF |
YAF © 2003-2009, Yet Another Forum.NETThis page was generated in 0.062 seconds.