發表文章

將3個union的資料合併成一列

  select a,b,c from x union select a,b,d from y union select a,b,e from z 得到資料為15000筆的a,b,c 欲合併得到資料為-->a,b,c,d,e  (大約5500筆資料) 以下執行時間為20秒--> select s1.SAL_MST_PERSONALID ID,s1.SAL_MST_ID,t1.TranDate td1,t2.TranDate td2,t3.TranDate td3  from (select * from sal001 where sal_mst_lay_off = 0) s1  left join ( SELECT s1.SAL_MST_PERSONALID ID,t9.FK_SAL_MST_ID,DATE_FORMAT(t9.trs_tcs_apply_date, '%Y%m%d') TranDate FROM trs009 t9  inner join sal001 s1 on s1.sal_mst_id=t9.fk_sal_mst_id WHERE t9.FK_TRS_MST_ID IN  (SELECT  t1.TRS_MST_ID FROM trs001 t1 WHERE t1.TRS_MST_TYPE_OLDER=1 AND t1.TRS_MST_CLASS_RELEASE=1 AND DATE_FORMAT(t1.TRS_MST_QUIZ_STARTDATE, '%Y') = DATE_FORMAT(CURDATE(), '%Y')-1) AND t9.TRS_TCS_IS_PASS = true ) t1 on s1.SAL_MST_ID=t1.FK_SAL_MST_ID left join ( SELECT s1.SAL_MST_PERSONALID ID,t9.FK_SAL_MST_ID,DATE_FORMAT(max(t9.trs_tcs_apply_date), '%Y%m%d') TranDate FROM trs009 t9  inner join sal001 s

mssql將數字開頭的字串去除

  用substring (str,pos,len)-> 由 <str> 中的第 <pos> 位置開始,選出接下去的 <len> 個字元。 搭配PATINDEX( '%pattern%' , expression ) :指定運算式中第一次出現的起始位置  pattern  : 要搜尋的 key word,前後需要用 %%包起來  expression  : 被搜尋的內容  return  : int,搜尋內容的位置    '%[^0-9]%'-->不是數字0-9以外的字串   '%[0-9]%'-->數字0-9的字串 指令如下: select ltrim(SUBSTRING(address, PATINDEX('%[^0-9]%', address), LEN(address))) FROM customer

JDBC連線MSSQL出現"驅動程式無法使用安全通訊端層 (SSL) 加密建立與 SQL Server 的安全連接。"

 在使用MSSQL JDBC DRIVER 9.4以後的版本,原先9.4之前可以正常使用的連線字串,出現標題的錯誤訊息。 原因:是因為10.2之後的版本啟用了TLS加密,造成9.4之前的連線字串無法正常運作。 解決方法:只需在連線字串加入encrypt=false就可以了,範例如下 Connection conn = DriverManager.getConnection("jdbc:sqlserver://192.168.XXX.XXX;user=??????;password=???????;database=???????;encrypt=false;");

MYSQL建立FUNCTION--中文姓名個資掩碼

  CREATE DEFINER=`%`@`%` FUNCTION `get_mask_name`(name varchar(50) CHARSET utf8mb4 ) RETURNS text CHARSET utf8mb4     DETERMINISTIC BEGIN DECLARE x varchar(50) CHARSET utf8mb4 DEFAULT ''; if isnull(name)=false then  case char_length(TRIM(name))    when 1 then set x=TRIM(name);    when 2 then set x=left(trim(name),1)+'O';    ELSE set x=CONCAT(left(trim(name),1) ,REPEAT('O',char_length(trim(name))-2) ,right(trim(name),1));    END case;  end if;   RETURN  x; END

eclipse專案有紅色驚嘆號

圖片
  eclipse在專案視窗中有紅色驚嘆號出現時,是該專案引用的一些外部JAR檔出現對應不到的情況 解決方式只需在Configure Build Path中,把有問題的引用導正或刪除即可

EXCEL VBA檔案另存成PDF,另存成XLSX加密碼

  Function saveFile_13(name, month) Dim RS As New ADODB.Recordset     sPath = ThisWorkbook.Path     Sheets("13").Select          Application.ScreenUpdating = False          X="A1234567890"         If Len(Trim(X)) > 0 Then                            Application.DisplayAlerts = False                 pw = Left(X, 1) & Right(X, 5)                                  '另存成PDF                'Sheets("13").ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & "\" & Replace(name, "*", "") & "_" & month & "個月.pdf"                 '另存xlsx                  Worksheets("13").Copy                  ActiveWorkbook.SaveAs Filename:=sPath & "\" & Replace(name, "*", "") & "_" & month & "個月.xlsx", FileFormat:=xlOpenXMLWorkbook, Password:=pw                 ActiveWorkbook.Close              Application.DisplayAler

VBA 另存CSV檔(UTF-8),將篩選內容轉存至指定儲存格

 Sub doExport_13() Dim rng As Range        '自動篩選結果範圍  b1 = Now           With Sheets("13_整理")               .Activate         'Worksheets("25").Activate         Set rng = .UsedRange    '所有資料範圍                         Dim fsT As Object         Dim tFilePath As String         tFilePath = ThisWorkbook.Path & "\" & "13_pw.csv"         'Create Stream object         Set fsT = CreateObject("ADODB.Stream")         fsT.Type = 2         fsT.Charset = "utf-8"         fsT.Open         fsT.WriteText "A1,A2,A3" + Chr(13)     '標頭         rng.AutoFilter    '設定自動篩選         TR = Worksheets("執行").UsedRange.Rows.Count         For I = 2 To TR                          .Activate             gn = Worksheets("執行").Cells(I, 17)    '取要篩選的值出來             rng.AutoFilter Field:=2, Criteria1:=gn  '選擇過瀘位置,設定過濾條件                              .Range("a1").CurrentRegion.Select '