جواد ملاولی
دوشنبه 28 دی 1388, 20:54 عصر
سلام. در تالار مربوط به Sql Server ، یه سوال پرسیدم؛ مدیر بخش این کد رو معرفی کرد:
SET NOCOUNT ON
CREATE TABLE a
(
i INT ,
j CHAR
)
INSERT INTO a VALUES ( 1, 'a' )
INSERT INTO a VALUES ( 1, 'h' )
INSERT INTO a VALUES ( 2, 'j' )
INSERT INTO a VALUES ( 2, 'n' )
INSERT INTO a VALUES ( 2, 'q' )
INSERT INTO a VALUES ( 2, 'd' )
INSERT INTO a VALUES ( 3, 'a' )
INSERT INTO a VALUES ( 3, NULL )
INSERT INTO a VALUES ( 3, 's' )
GO
ALTER FUNCTION list
(
@n INT
)
RETURNS VARCHAR(25)
AS
BEGIN
DECLARE @j VARCHAR(25)
SET @j = ''
SELECT @j = @j + CASE WHEN j IS NOT NULL THEN j+'-'
ELSE ''
END
FROM a
WHERE i = @n
RETURN @j
END
GO
SELECT i, list=dbo.list(i)
FROM a
GROUP BY i
سوالم این بود:
فرض کنید جدولی داریم که در آن مشخصات کاربران سیستم رو نگهداری می کنیم. حالا میخواهیم یک کوئری بگیریم به این نحو که رکوردهایی که نام خانوادگی آنها مثلا کرمی است رو بده، به این شکل که فقط یک رکورد برگردونه و نام کوچک کاربران رو در یک فیلد بنویسه و با کاما از هم جدا کنه.
دستور sql رو چطور باید بنویسیم؟
چه جوری میتونم این کد رو در دلفی استفاده کنم؟
SET NOCOUNT ON
CREATE TABLE a
(
i INT ,
j CHAR
)
INSERT INTO a VALUES ( 1, 'a' )
INSERT INTO a VALUES ( 1, 'h' )
INSERT INTO a VALUES ( 2, 'j' )
INSERT INTO a VALUES ( 2, 'n' )
INSERT INTO a VALUES ( 2, 'q' )
INSERT INTO a VALUES ( 2, 'd' )
INSERT INTO a VALUES ( 3, 'a' )
INSERT INTO a VALUES ( 3, NULL )
INSERT INTO a VALUES ( 3, 's' )
GO
ALTER FUNCTION list
(
@n INT
)
RETURNS VARCHAR(25)
AS
BEGIN
DECLARE @j VARCHAR(25)
SET @j = ''
SELECT @j = @j + CASE WHEN j IS NOT NULL THEN j+'-'
ELSE ''
END
FROM a
WHERE i = @n
RETURN @j
END
GO
SELECT i, list=dbo.list(i)
FROM a
GROUP BY i
سوالم این بود:
فرض کنید جدولی داریم که در آن مشخصات کاربران سیستم رو نگهداری می کنیم. حالا میخواهیم یک کوئری بگیریم به این نحو که رکوردهایی که نام خانوادگی آنها مثلا کرمی است رو بده، به این شکل که فقط یک رکورد برگردونه و نام کوچک کاربران رو در یک فیلد بنویسه و با کاما از هم جدا کنه.
دستور sql رو چطور باید بنویسیم؟
چه جوری میتونم این کد رو در دلفی استفاده کنم؟