有些表格通常只有代碼,為了取得名稱,需要先串接代碼以取得名稱,而串接語法往往造成SQL中包含冗長的串接語法,去處理代碼化名稱的動作,為了簡化資料存取語法,應先將串接代碼取得名稱的SQL結果另存成新表,可簡易運用以下 SQL達成:
create table new_table as select ... from old_table
釋例:
原本取代碼的 SQL:
select a.*, b.名稱 as 科目名稱
from 明細分類帳 a, 基本代碼檔 b
where 1=1
and a.機關名稱=b.機關名稱
and a.送審年 = b.送審年
and a.總帳科目 = b.代碼
and cast(a.送審月 as decimal) = cast(b.送審月 as decimal)
建立包含代碼名稱之新表:
create table 新明細分類帳 as
select a.*, b.名稱 as 科目名稱
from 明細分類帳 a, 基本代碼檔 b
where 1=1
and a.機關名稱=b.機關名稱
and a.送審年 = b.送審年
and a.總帳科目 = b.代碼
and cast(a.送審月 as decimal) = cast(b.送審月 as decimal)
之後原來的 SQL即簡化為:
select *
from 新明細分類帳
沒有留言:
張貼留言