PDA

View Full Version : Lập trình với SQL



heenoowoon
17-02-2011, 21:16
lập hàm chuyển hệ số:
2 --> 8
2 --> 10
2 --> 16

8 --> 2
8 --> 10
8 --> 16

10 --> 2
10 --> 8
10 --> 16

16 --> 2
16 --> 8
16 --> 10

megaownage
18-02-2011, 09:28
Lập hàm trong SQL?

Không khó nhưng có lẽ chủ đề cần học lại kỹ thêm về căn bản CNTT.

Hàm thì phải có input/output. Không cho biết dạng (thể loại) thì làm thế nào được?

heenoowoon
18-02-2011, 15:43
1. à mình quên tý, đó là khi mình lập hàm vd là hàm hệ 2 --> 10 thì input 101 thi output là 5, và ngược lại nếu 10 --> 2 thì input 5 thì output 101.
mấy cái kia cũng tuơng tự.
nói thật mình đã hiễu được thuật toán rồi nhưng với lập trình sql thì thật mới mẽ, mình đang tìm hiểu nhưng toàn là lập trình với cơ sở dử liệu, còn cái này mình đang tìm cách khai báo biến a[] (trong sql không có loại biến này) không biết print thế nào, dạng kiểu mảng đó, nếu anh em biết và có thể giúp thì post lên nha, thank nhiều lắm.
2.tuơng tự xuất hàm ra bảng cửu chuơng đó. inpt @n int,set @n between 2 and 9, output bảng cửu chuơng tuơng ứng 2 hoặc ...9

megaownage
18-02-2011, 16:19
SQL Server?

Dùng string và string functions. Chủ yếu là đặt loại char(n) hoặc varchar(n) và hàm STUFF()

vd hệ 32 bit

declare @sohe2 char(32), @sohe16 char(8)

set @sohe2 = REPLICATE('0', 32) -- số 0

set @sohe2 = STUFF( @sohe2, 31, 1, '1') -- đổi byte thứ 31 của dãy 32 số không thành số 1 -> số 2

set @sohe16 = REPLICATE('0', 8) -- số 0

set @sohe2 = STUFF( @sohe2, 7, 1, '1') -- đổi byte thứ 7 của dãy 8 số không thành số 1 -> số 16

Đai loại là nó rắc rối như thế. Bởi vì yêu cầu của bạn cũng rắc rối. SQL là ngôn ngữ để truy vấn CSDL liên hệ chứ đâu phải là ngôn ngữ lập trình.

Còn muốn convert dễ dàng thì dùng thể loại varbinary
Hoặc dùng các hàm cho sẵn của SQL Server, ví dụ như master.dbo.fn_varbintohexstr

heenoowoon
18-02-2011, 20:35
uhm, thật tình là cảm ơn bạn nhiều, mình cũng nghĩ vậy,nhưng mà trên trường thầy yêu cầu bài tập về nhà là vậy,nhưng mình cũng suy nghĩ oài mà không ra,viết lập trình trên ngôn ngữ c hoặc vb thì dễ hơn nhĩ.
thôi suy nghĩ tiếp đã....

mekongonlinevn
18-02-2011, 22:29
a bạn thử dùng book online của sql thử xem