發表文章

目前顯示的是 2019的文章

T-SQL 運算式 - EXCEPT 與 INTERSECT

圖片
當兩個資料集多個欄位交叉比對時,可以採用 EXCEPT 或 INTERSECT 運算式,其結果會類似:

EXCEPT 等於 NOT IN + DISTINCT 的語法INTERSECT 與 IN + DISTINCT 的語法

基本語法範例
CREATE TABLE Product ( ProductID int ); GO CREATE TABLE WorkOrder( ProductID int ); GO TRUNCATE TABLE Product TRUNCATE TABLE WorkOrder GO INSERT INTO Product(ProductID) SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 ; GO INSERT INTO WorkOrder(ProductID) SELECT 2 UNION ALL SELECT 3 ; GO /*IN 的寫法*/ SELECT N'IN 的寫法', ProductID FROM Product WHERE ProductID IN ( SELECT ProductID FROM WorkOrder ) GO /*INTERSECT 的寫法*/ SELECT N'INTERSECT 的寫法', * FROM( SELECT ProductID FROM Product INTERSECT SELECT ProductID FROM WorkOrder )T GO /*NOT IN 的寫法*/ SELECT N'NOT IN 的寫法', ProductID FROM Product WHERE ProductID NOT IN ( SELECT ProductID FROM WorkOrder ) GO /*EXCEPT 的寫法*/ SELECT N'EXCEPT 的寫法', * FROM( SELECT ProductI…

Visual Studio 2019 設定使用 ASP.NET Blazor Core Blazor 專案

圖片
本文介紹在 Visual Studio 2019 中建立 Blazor App 的開發環境需要的準備步驟。
環境準備
1. Visual Studio 2019 設定使用 Preview SDK
由於 .NET Core 目前是屬於 Preview 版本,需要在 Visual Studio 設定可使用 Preview .NET Core SDK 設定步驟: 開啟 Visual Studio > 選單 > Tools > Option > Environment > Preview Features 選取 [ Use previews of the .NET Core SDK ] 如下圖


2. 安裝 .NET Core SDK 透過以下網址下載並安裝,我目前選擇版本是 SDK 3.0.100-preview7-012821 https://dotnet.microsoft.com/download/dotnet-core/3.0
3. 安裝 Blazor 專案範本 在 Visual Studio 需要先安裝 Blazor 專案範本,直接在命令指示字元中輸入: dotnet new -i Microsoft.AspNetCore.Blazor.Templates::3.0.0-preview7.19365.7


測試新增 Blazor 專案
在 Visual Studio 2019 新增 Blazor 專案步驟如下










看到這個畫面表示基本的開發環境已經完成了 ^_^
參考 Get started with ASP.NET Core Blazor https://docs.microsoft.com/zh-tw/aspnet/core/blazor/get-started?view=aspnetcore-3.0&tabs=visual-studio
ASP.NET Core and Blazor updates in .NET Core 3.0 Preview https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0-preview-6/


SSMS 修正斷行符號

圖片
問題描述 當預存程序或其他資料庫程式碼中,包含了非 Windows 的斷行符號, 在資料庫專案進行比對時, 會顯示檔案有差異,但看不到差異的文字內容, 更新至原始碼後, 再一次比對仍會顯示檔案有差異...

解決方法  SSMS 開啟自動檢查編碼,並進行修正為Windows 斷行符號。
步驟如下:
SSMS 開啟自動檢查編碼 1: Open SSMS  2: Got to Tools > Options 3: Expand the Environment Tab 4: Select Documents> Check the option for consistent line ending on load.


開啟有問題的預存程序, 會提示有編碼問題,請按下 [Yes] 進行修正


參考資料 CRLF跟LF之區別 --- 隱形的 bug http://violin-tao.blogspot.com/2016/05/crlflf-bug.html
Git 在 Windows 平台處理斷行字元 (CRLF) 的注意事項 https://blog.miniasp.com/post/2013/09/15/Git-for-Windows-Line-Ending-Conversion-Notes

Slack 訊息與 Trello 工作有官方整合 App

圖片
Slack -> Trello 在 Slack 中直接新增與編輯 Trello 工作卡
https://slack.com/apps/A074YH40Z-trello
https://help.trello.com/article/1049-slack-app


Trello -> Slack   編輯 Trello 工作卡時,同步訊息到 Slack https://trello.com/power-ups/55a5d917446f51777421000a/slack


Evernote helps you remember everything and get organized effortlessly. Download Evernote.

Windows 10 建立虛擬磁碟

圖片
Windows 10 磁碟管理中可以新增虛擬磁碟,建立與解除虛擬磁碟步驟如下:
掛載虛擬磁碟
[Winodws] 鍵 > 右鍵 > [磁碟管理]

進入 磁碟管理  開啟選單 [Action] > [Create VHD]

輸入虛擬磁碟儲存的位置與容量大小

在新增的磁碟按右鍵 > 初始化

完成初始化後,新增磁碟區






完成後,在檔案總管中可以看到新的磁碟


解除虛擬磁碟
點擊要解除虛擬硬碟 按右鍵 [解除虛擬磁碟]


SQL Server Partition Table T-SQL 分割資料表實作步驟

圖片
1 新增空白資料庫 USE [master] GO CREATE DATABASE [PartitionTableLab] CONTAINMENT = NONE ON  PRIMARY ( NAME = N'PartitionTableLab', FILENAME = N'F:\SQL_DATA\PartitionTableLab.mdf'  , SIZE = 1024KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'PartitionTableLab_log', FILENAME =  N'F:\SQL_DATA\PartitionTableLab_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB ,  FILEGROWTH = 1024KB ) GO


2 以年度建立 Partition Function 與 Partition Schema USE [master] GO

ALTER DATABASE [PartitionTableLab] ADD FILEGROUP [FG_2012]; ALTER DATABASE [PartitionTableLab] ADD FILEGROUP [FG_2013]; ALTER DATABASE [PartitionTableLab] ADD FILEGROUP [FG_2014]; GO

ALTER DATABASE [PartitionTableLab] ADD FILE ( NAME = N'HIS_2012', FILENAME =  N'F:\SQL_DATA\PartitionTableLab_his_2012.ndf' , SIZE = 1024KB , FILEGROWTH = 1024KB ) TO FILEGROUP [FG_2012] GO ALTER DATABASE [PartitionTableLab] ADD FILE ( NAME = N'HIS_2013', FILENAME =  N'F:\SQL_DATA\PartitionTableLab_h…

T-SQL 透過 XOR / AND 運算式做複合式判斷 1, 2, 4, 8, 16 列舉值

若想用一個數值表示多個條件是否成立,這些複合條件設計一個列舉 , 每個條件對應一個 2 的幕次方,如:1, 2, 4, 8, 16...
舉例  1 號條件值 = 1: 0001 2 號條件值 = 2: 0010 3 號條件值 = 4: 0100 4 號條件值 = 8: 1000
有個變數 A 包含 1 號條件與 3 號條件 ,用 XOR 運算變數 A 等於 5 0001 0100 ------ 0101
比對 變數 A 是否有包含 3 號條件,用 AND 運算會得到 4,與 3 號條件的值相同,表示成立 0101 0100 ------ 0100
比對 變數 A 是否有包含 數值 2,用 AND 運算會得到 0,與 2 號條件的值不同,表示不成立 0101 0010 ------ 0000
以 T-SQL 實作範例
/*Enums */ DECLARE @Gold int = 1, @Silver int = 2, @Pearl int = 4, @Diamond int = 8; DECLARE @MyGift int;
/*Add some */ SET @MyGift =  @Gold | @Diamond;
/*Check if I have */ select 'I have Gold', IIF(@Gold & @MyGift = @Gold, 'Yes', 'No') union all select 'I have Silver', IIF(@Silver & @MyGift = @Silver, 'Yes', 'No') union all select 'I have Pearl', IIF(@Pearl & @MyGift = @Pearl, 'Yes', 'No') union all select 'I have Diamond', IIF(@Diamond & @MyGift = @Diamond, 'Yes', 'No')

在 Github 建立部落格 Step by Step

在 Github 建立部落格,好處有: 1) 網站主題範本無限 2) 使用 Markdown 語法寫文章, 3) 自訂網域名稱
How to create Jekyll blog using Github Pages - Tutorial 4
1) clone Github 範本  2) 切換預設的 branch 3) 等候很長的時間,網址會生效 4) 本機端編輯 Push 到 Github Server
Youtube : https://youtu.be/U0idtvxVo9I
範本集  https://pages.github.com/themes/ http://jekyllthemes.org/ https://hexo.io/themes/ https://www.jianshu.com/p/bcdbe7347c8d
單一網站 https://github.com/Huxpro/huxpro.github.io http://blackrockdigital.github.io/startbootstrap-clean-blog-jekyll/


自訂網域名稱
1) DNS 上新增 A record 2) DNS 新增 CName 3) Github 後台設定 Custom domain 4) 新增 CNAME 檔案 5) 修改 _config.yml 檔案

Article: https://xiwan.io/archive/github-pages-use-custom-domain-name.html

如何新增一篇文章
1) 在 _posts 目錄下新增副檔名為 .md 的檔案 2) 在標題前後一行加上 ---


練習成果 http://blog.robinks.net/

VSCode: 使用 Git 版本控制
1) 安裝 Visual Studio Code 2) 安裝 Git https://git-scm.com/downloads 3) Github 新增一個 Repository 4) 下載到本機 5) VSCode 開啟目錄,對檔案做新增修改,commit -> push

Channel9 Video https://channel9.msdn.com/Series/Mastering-Visual-Studio-Code/Using-Git-Versio…

Google 試算表透過表單編輯資料 Sheet connect Form

圖片
Google Sheets 內可以建立一個輸入表單,做為問卷調查、報表名、測驗卷…等功能,
預設這是提供使用者新增一筆資料,當新增後離開表單畫面,要修改資料只能從指定儲存的 Google Sheets 中編輯。

而在 Awesome Table and Google Form 範例 中,資料列中點擊 [EDIT ENTRY] 可以開啟表單畫面做編輯。

筆者依樣畫葫蘆做一個簡單範例,先看一下執行的結果


範例說明 當 Google Sheet 接受從 Google Form傳入資料時,背景執行一段 Script 產生一個超連結在該列的第一個欄位上。

實作步驟 1. 建立 Google Sheets 並新增一個表單

在 Google Form 中設計輸入欄位


在 Google Form 右上角 Setting 中啟用送出後可編輯


從 Google Form 中新增一筆資料


在 Google 中第一欄 [Timestamp] 左側新增一欄,這欄內容將由 Script 中產生


2. 建立 Script 與 Trigger 進入 Script editor


複製 Google Apps Script,修改第一行網址中的 ID 與第二行的 Sheet 名稱 (sheetName)。

var formURL = 'https://docs.google.com/forms/d/1T7IDCVvO2Osb7SlqVgWzpQoFt4IkGd8s3FQS7AhKJI0/viewform/viewform'; var sheetName = 'Form Responses'; var columnIndex = 1 ; function getEditResponseUrls() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); var data = sheet.getDataRange().getValues(); var form = FormApp.openByUrl(formURL); for(var i = 1; i < data.length; i++) { if (data[i][1] != '&…