2019. 8. 27. 09:10

[Coldfusion] fileUpload 함수 처리전에 파일명을 확인해야 하는 경우

string function getUploadFileName(required string formFieldName)
{
var tmpPartsArray = Form.getPartsArray();
var clientFileName = "";

if (!isNull(tmpPartsArray)) {
for (var tmpPart in tmpPartsArray) {
if (tmpPart.isFile() AND tmpPart.getName() EQ arguments.formFieldName) {
return tmpPart.getFileName();
}
}
}

return "";
}


2019. 4. 30. 09:56

[MSSQL] rows to columns (PIVOT)

아래 형태의 rows 를 columns 로 변환하는 방법

주의) subquery 의 select column에 따라서 최종 row수가 변할 수 있으니 사용하지 않더라도 subquery에서는 결과 row를 구분 할 수 있는 column(like pk)을 포함시켜야 함


TABLE2

Identifier | Content

Identifier_Name1 | blabla

Identifier_Name2 | blablabla

Identifier_Name3 | blablabla..

SELECT P.[Identifier_Name1], P.[Identifier_Name2], P.[Identifier_Name3]
FROM (
SELECT [PK_NAME], [Identifier], [Content]
FROM [TABLE2]
WHERE [TABLE2].[COLUMN] = ?
) A
PIVOT (
MAX(A.[Content]) FOR A.[Identifier] IN (
[Identifier_Name1],
[Identifier_Name2],
[Identifier_Name3]
)
) P


다른 table과 join 하여 하나의 row로 표시하는 법

SELECT P.[TABLE1_COLUMN], P.[Identifier_Name1], P.[Identifier_Name2], P.[Identifier_Name3]
FROM (
SELECT
[TABLE1].[KEY],
[TABLE1].[COLUMN],
[TABLE2].[Identifier], [TABLE2].[Content]
FROM [TABLE1]
LEFT JOIN [TABLE2] ON [TABLE1].[KEY] = [TABLE2].[KEY]
WHERE [TABLE1].[COLUMN] = ?
) A
PIVOT (
MAX(A.[Content]) FOR A.[Identifier] IN (
[Identifier_Name1],
[Identifier_Name2],
[Identifier_Name3]
)
) P


반대개념으론로는 UNPIVOT이 있음


2019. 4. 30. 09:37

INSERTED PK 얻는 방법(SCOPE_IDENTITY, OUTPUT, MERGE INTO)

1. SCOPE_IDENTITY() 사용

INSERT INTO [TABLE] ([COLUMN]) VALUE ('value')
SELECT SCOPE_IDENTITY() AS pk


2. OUTPUT 사용

INSERT INTO [TABLE] ([COLUMN])
OUTPUT INSERTED.[PK_COLUMN]
SELECT 'value' FROM [TABLE2] -- 그냥 insert 도 되고 insert select 도 사용 가능


3. INSERT 된 PK와 기존PK 얻는 방법(MERGE INTO 사용)

MERGE INTO [TARGET_TABLE] TT
USING (
SELECT [PK_NAME], [COLUMN] FROM [SOURCE_TABLE] WHERE [COLUMN] = ?
) ST ON TT.[PK_COLUMN] = ST.[PK_COLUMN]
WHEN NOT MATCHED THEN
INSERT ([TT_COLUMN]) VALUES (ST.[COLUMN])
OUTPUT INSERTED.[TT_PK_NAME] AS NewPK, ST.[PK_NAME] AS OldPK;


2019. 2. 21. 15:58

여러개의 PDF 를 merge 하여 출력

<cfdocument name="aaa" format="pdf">
abcd
</cfdocument>

<cfpdf action="merge" name="abc">
<cfpdfparam source="aaa">
<cfpdfparam source="#expandPath("/testPDF4.pdf")#">
<cfpdfparam source="#expandPath("/testPDF11.pdf")#">
</cfpdf>
<cfcontent type="application/pdf" variable="#ToBinary( abc )#" reset="true">