성내도서관 문화특강 ‘그림책, 음악을 만나다.’

성내도서관에 김영욱님의 ‘그림책, 음악을 만나다’ 문화 특강이 있어서 간만에 애들 데리고 방문을 했다. 둘째가 자꾸 나가자고 보채서 강의는 몇분 듣지는 못해서 내용이 이렇다 저렇다 말할 수는 없지만 도서관이 단순히 책만 보는 곳이 아니라 여러 가지 문화를 접할 수 있도록 꾸준히 노력하는 성내도서관의 모습은 정말 칭찬받아 마땅하다고 본다.

사용자 삽입 이미지

올 여름은 성내천 물놀이장에서 저렴하게

작년에 올팍북2문에서 마천동까지 성내천 자전거 탐사를 하면서 봐두었던 성내천 물놀이장에 애들 데리고 가봤다. 입장료도 없고, 탈의실, 샤워장도 있고 애들 놀기에는 정말 딱인것 같다. 그리고 물이 깊지 않아서 위험해 보이지는 않았지만 안전요원들도 꽤 많아 보였다. 이번 여름은 이곳에서 저렴하게 더위를 피하는 것도 좋을 듯하다.
사용자 삽입 이미지
성내천 벽천이다. 정말 물이 시원하게 퀄퀄 뿜어 내려오고 있었다. 여기에도 애들이 물놀이를 하고 있었다.
사용자 삽입 이미지
성내천을 따라 집으로 돌아오면서 본 엄청 큰 이름 모를 물고기며 들꽃, 토끼풀, 연꽃 등은 도시의 삭막함을 좀 사그러지게 하는 것 같았다.

[MS Sql] 여러 레코드를 하나의 문자열로 합치기

특정쿼리의 결과 레코드를 하나의 문자열, 특히 CSV(Comma Separaed Value) 형태로 바꾸는 방법은 여러가지가 있는데 이를 정리해 보고자 한다.

Rowset sting concatenation : Which method is best ?

scalar UDF 방법

[code SQL]
USE pubs
GO

CREATE FUNCTION dbo.ConcatAuthors(@State CHAR(2))
RETURNS VARCHAR(8000)
AS
BEGIN
 DECLARE @Output VARCHAR(8000)
 SET @Output = ”

 SELECT @Output = CASE @Output
    WHEN ” THEN au_lname
    ELSE @Output + ‘, ‘ + au_lname
    END
 FROM Authors
 WHERE State = @State
 ORDER BY au_lname

 RETURN @Output
END
GO
[/code]

이 함수의 실제 사용은

[code sql]
SELECT DISTINCT State, dbo.ConcatAuthors(State)
FROM Authors
ORDER BY State
[/code]

temp 테이블 사용 방법

[code SQL]
CREATE TABLE #AuthorConcat
(
 State CHAR(2) NOT NULL,
 au_lname VARCHAR(8000) NOT NULL,
 Ident INT IDENTITY(1,1) NOT NULL PRIMARY KEY
)

INSERT #AuthorConcat
(
 State,
 au_lname
)
SELECT
 State,
 au_lname
FROM Authors
ORDER BY
 State,
 au_lname

DECLARE @Authors VARCHAR(8000)
SET @Authors = ”
DECLARE @State CHAR(2)
SET @State = ”

UPDATE #AuthorConcat
SET @Authors = au_lname = CASE
    WHEN @State = State THEN @Authors + ‘, ‘ + au_lname
    ELSE au_lname END,
 @State = State

SELECT State, MAX(au_lname)
FROM #AuthorConcat
GROUP BY State
[/code]