[英]How can I trim the entire select statement in SQL Server?
我有一條很長的Select語句:
select a, b, c, d, ... etc from tableA;
我將如何在不編寫代碼的情況下修剪以上所有內容:
select trim(a), trim(b) etc ...
如果有更簡單的方法,我可以在SQL Server或C#中很好地實現這一點? 有什么創意,例如為每個循環使用a或類似的東西?
取決於用例,性能和帶寬方面的考慮,您可能要做的一件事就是在C#中執行以下操作:
您將查詢結果返回到代碼(可以是EF IQueryable,ADO.NET DataTable等),然后遍歷字段,檢查給定的字段是否為String
類型,並在其上應用.Trim()
。
建立一個字符串操作函數工具集,以幫助您執行經常執行的普通任務。 將它們另存為服務器上的過程或函數,或編寫程序並根據需要調用它們以幫助您建立查詢。 例如,將所有列包裝在函數中:
declare @stringlist as varchar(max)
declare @stringlistnew as varchar(max)
declare @wrapstart as varchar(max)
declare @wrapend as varchar(max)
set @stringlist = 'a, b, c, d, e, f, g, h, i'
set @wrapstart = 'ltrim(rtrim('
set @wrapend = ')) '
declare @i as int
set @i=0
set @stringlist = ltrim(@stringlist) + ','
while LEN(@stringlist) > 1
begin
set @i=charindex(',',@stringlist)
set @stringlistnew = case when ISNULL(@stringlistnew, '') = '' then '' else @stringlistnew + ', ' end
set @stringlistnew = @stringlistnew + @wrapstart + ltrim(rtrim(LEFT(@stringlist,@i-1))) + @wrapend + ltrim(rtrim(LEFT(@stringlist,@i-1)))
set @stringlist = ltrim(RIGHT(@stringlist, len(@stringlist)-@i))
end
select @stringlistnew stringlistnew
通過將查詢輸出到文本,可以從Management Studio獲取列列表。 復制表標題並將其粘貼到新窗口中,然后用一個空格搜索並替換兩個空格,然后重復進行直到每個列名之間只有一個空格為止。 然后用逗號替換所有空格。 或者,您也可以修改此功能以同時為您完成所有操作。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.