2
我有很多列的表格,我想添加到每個列相同的前綴在做選擇的時候,我的意思是不是長碼:選擇以所有表
SELECT table.id AS prefix_id
,table.value AS prefix_value
,table.content AS prefix_content
, ...
有一個簡單如何做到這一點?
我有很多列的表格,我想添加到每個列相同的前綴在做選擇的時候,我的意思是不是長碼:選擇以所有表
SELECT table.id AS prefix_id
,table.value AS prefix_value
,table.content AS prefix_content
, ...
有一個簡單如何做到這一點?
不可能爲所有列添加前綴,除非您使用AS
(如您的示例)手動執行。
我不知道這是否會幫助你,寫一個腳本來做到這一點。您可以自定義它傳遞表名,前綴等
declare
@tableName varchar(50) = 'school',
@sql varchar(max) = 'SELECT '
Select @sql = @sql+'c.'+c.name+',' from sys.columns c
join sys.tables t on c.object_id = t.object_id
where t.name = @tableName
--MORE PRECISELY
Select @sql = @sql+'c.'+c.name+' as prefix_'+c.name+', ' from sys.columns c
join sys.tables t on c.object_id = t.object_id
where t.name = @tableName
Set @sql = @sql + ' FROM '[email protected]+' c'
print @sql
輸出,其中c.
是前綴。您可以修改代碼以品嚐
SELECT c.SchoolID as prefix_SchoolID,
c.SchoolName as prefix_SchoolName,
c.Address as prefix_Address,
c.City as prefix_City,
c.State as prefix_State,
c.Country as prefix_Country,
c.PhoneNumber as prefix_PhoneNumber,
c.Password as prefix_Password,
c.CreatedBy as prefix_CreatedBy,
c.CreatedOn as prefix_CreatedOn,
c.ModifiedBy as prefix_ModifiedBy,
c.ModifiedOn as prefix_ModifiedOn,
FROM school c
注意逗號modifiedOn
後。您可能需要從@sql
變量或手動刪除
其中rdbms?動態sql可能是一個選項(即Oracle世界中的EXECUTE IMMEDIATE)。 – Glenn 2012-08-05 21:01:54
你使用什麼數據庫? – hol 2012-08-05 21:37:32
在不知道數據庫的情況下,大多數人都可以說是使用動態SQL遍歷列來構建所需的別名。 – 2012-08-05 22:10:10