適用於:Microsoft Fabric 中的✅ 資料庫
在這個教學中,你將學習如何利用內建 的 T-SQL AI 函式 ,用自然語言推理倉庫資料表資料。 使用 dbo.fact_sale 資料表,在簡單的 SELECT 查詢中探索 AI 功能,在更進階的分析查詢中使用這些功能,並將其結果持續保存到欄位中。
利用 AI 功能探索資料
在這個任務中,學習如何在簡單 SELECT 查詢中運用內建的 AI 函式,探索它們的回應,且不必更改表格。
確定您在 第一個教學課程中建立的工作區已開啟。
從描述中擷取類別
在 [首頁] 功能區上,選取 [新增 SQL 查詢]。
在查詢編輯器中,貼上下列程式碼。 程式碼用
AI_EXTRACT來從描述中提取顏色和大小,例如Alien officer hoodie (Black) XXL。AI_EXTRACT回傳一個 JSON 物件,因此可以將OPENJSON屬性轉換成獨立欄位。-- Extract color and size attributes. SELECT SaleKey, Description, extracted.Color, extracted.Size FROM dbo.fact_sale CROSS APPLY OPENJSON(AI_EXTRACT(Description, 'Color', 'Size')) WITH (Color varchar(50), Size varchar(20)) AS extracted;執行查詢。
執行完成時,請將查詢重新命名為
Color & Size Extraction。 確認Color和Size會被分開欄位填充。
將描述格式化為 HTML
建立一個新查詢,貼上以下程式碼,然後執行。 程式碼使用
AI_GENERATE_RESPONSE將Description改寫為包含主要屬性清單的 HTML 產品摘要,可直接在網頁上呈現。-- Generate a catalog description formatted as HTML, with a summary and an attribute list. SELECT SaleKey, Description, AI_GENERATE_RESPONSE( 'Rewrite as a short e-commerce catalog description. Format the result as HTML: wrap the summary in a <p> tag, then list key attributes as a <dl>, with each <dt> label bolded using <strong> and followed by its <dd> value.', Description ) AS CatalogDescription FROM dbo.fact_sale;將查詢重新命名為
Short Catalog Description Generation。CatalogDescription檢查並確認其中包含所需的<p>、<dl>、<dt>及<dd>元素。
摘要銷售項目資訊
建立一個新查詢,貼上以下程式碼,然後執行。 該程式碼會
AI_GENERATE_RESPONSE將數字欄位(而非Description)轉為銷售項目的純文字摘要。-- Summarize each sales item in plain text, based on numeric columns only. DECLARE @prompt nvarchar(max) = N'Summarize this sales item in one short sentence for a business report.'; SELECT *, AI_GENERATE_RESPONSE( @prompt, CONCAT( 'Package: ', Package, '. Quantity: ', Quantity, '. Dry items: ', TotalDryItems, '. Chiller items: ', TotalChillerItems, '. Unit price: ', UnitPrice, '. Tax rate: ', TaxRate, '. Profit: ', Profit, '. Total including tax: ', TotalIncludingTax ) ) AS SalesItemSummary FROM dbo.fact_sale;將查詢重新命名為
Sales Item Summary Generation。 讀幾個SalesItemSummary數值,確認它們是否反映同一列的數字欄位。
確定每項銷售項目的優先順序
在此任務中,使用 AI_GENERATE_RESPONSE 較進階的查詢,結合多個欄位以支持商業決策,而非只針對單一欄位進行推理。
建立一個新查詢,貼上以下程式碼,然後執行。 該程式碼將發票日期、交貨日期、參考日期、行總額、利潤及需要冷藏處理的冷藏設備數量合併成一個輸入,然後要求 AI 回傳一個將這些訊號合併成一個數字的優先分數。
fact_sale保存過往銷售資料,因此@AsOfDate可作為你在即時履單佇列中會使用的目前業務日期。-- Score sales items for fulfillment priority based on invoice-to-delivery time, line total, profit, and chiller items. DECLARE @AsOfDate date = '2016-05-01'; DECLARE @prompt nvarchar(max) = N'Given the invoice date, delivery date, reference date, line total, profit, and number of chiller items below, return a single integer priority score from 1 (low) to 100 (urgent) for sales-item fulfillment. Consider how much time was allowed from invoice to delivery, and how close the delivery date is to the reference date. Larger line totals, closer delivery dates, higher profit, and more chiller items should raise the score. Return only the number.'; SELECT SaleKey, InvoiceDateKey, DeliveryDateKey, TotalIncludingTax, Profit, TotalChillerItems, TRY_CAST(AI_GENERATE_RESPONSE( @prompt, CONCAT( 'Invoice date: ', CONVERT(char(10), InvoiceDateKey, 23), '. Delivery date: ', CONVERT(char(10), DeliveryDateKey, 23), '. Reference date: ', CONVERT(char(10), @AsOfDate, 23), '. Line total: ', TotalIncludingTax, '. Profit: ', Profit, '. Chiller items: ', TotalChillerItems ) ) AS int) AS PriorityScore FROM dbo.fact_sale ORDER BY PriorityScore DESC;將查詢重新命名為
Sales Item Fulfillment Priority Scoring。 確認PriorityScore值介於1到100之間,分數最高者優先排序。
持續保存 AI 結果
目前為止的範例會在 SELECT 中傳回 AI 結果。 若要重複使用這些結果而不每次都重新計算,請將結果寫回 UPDATE。
修正描述中的文法錯誤
建立一個新查詢,貼上以下程式碼,然後執行。 程式碼用
AI_FIX_GRAMMAR來修正Description原文,當 AI 沒有需要修正時,會保留原文。-- Fix grammar issues in the description, in place. UPDATE dbo.fact_sale SET Description = ISNULL(AI_FIX_GRAMMAR(Description), Description) WHERE Description IS NOT NULL;將查詢重新命名為
Grammar Correction Update。 比較幾行Description被改動的行,確認修正是否正確。
產生新欄位
此任務先新增兩個目的地欄位,然後在一次更新中填充它們。
建立一個新查詢,貼上以下程式碼,然後執行。 程式碼新增了翻譯描述欄位和產品類別。
-- Add columns for the translated description and the product category. ALTER TABLE dbo.fact_sale ADD DescriptionFr nvarchar(max) NULL, ProductCategory nvarchar(50) NULL;將查詢重新命名為
Add Translation & Category Columns。建立一個新查詢,貼上以下程式碼,然後執行。 程式碼在同一次更新中填滿兩欄,使用
AI_TRANSLATE和DescriptionAI_CLASSIFY將每列排序為固定的產品類別,與表格中實際內容相符,例如新奇馬克杯、服飾和包裝用品。-- Populate the translated description and product category columns. UPDATE dbo.fact_sale SET DescriptionFr = AI_TRANSLATE(Description, 'fr'), ProductCategory = AI_CLASSIFY( Description, 'Apparel', 'Footwear', 'Novelty & Gifts', 'Packaging Materials', 'Toys & Costumes', 'Office Supplies' ) WHERE Description IS NOT NULL;將查詢重新命名為
Populate Translation & Category Columns。 確認每一列的DescriptionFr和ProductCategory都已填入。
後續步驟
教學課程:使用倉儲 中的可視化查詢產生器建立查詢