2
我在寫一個實用程序腳本,它將從數據庫表中取出一列,並生成一段JavaScript代碼。我想要的是返回一個像「First_Name」這樣的值並將其轉換爲「firstName」。有沒有一種簡單的方法在SQL中執行此操作?我正在使用T-SQL。T-SQL函數駝峯值駝峯值
我在寫一個實用程序腳本,它將從數據庫表中取出一列,並生成一段JavaScript代碼。我想要的是返回一個像「First_Name」這樣的值並將其轉換爲「firstName」。有沒有一種簡單的方法在SQL中執行此操作?我正在使用T-SQL。T-SQL函數駝峯值駝峯值
如何:
CREATE FUNCTION [dbo].[udfCamel]
(
@Name VARCHAR(50)
)
RETURNS varchar(50)
AS
BEGIN
declare @newstring varchar(50)
set @newstring = stuff(replace(@Name, '_', ''), 1, 1, lower(left(@Name, 1)))
RETURN @newstring
END
然後,當你執行它:
declare @str varchar(50)
set @str = 'First_Name'
select dbo.udfCamel(@str)
回報:firstName
您可以使用標量函數返回的駱駝。這也將處理小寫情況。這裏是一個可能適用於你的例子:
DECLARE @MyText VARCHAR(MAX)
SET @MyText = 'Convert_This_to_Camel_Case'
WHILE(CHARINDEX('_',@MyText) > 0)
BEGIN
SET @MyText = REPLACE(@MyText,'_' +SUBSTRING(@MyText,(CHARINDEX('_',@MyText) + 1),1), UPPER(SUBSTRING(@MyText,(CHARINDEX('_',@MyText) + 1),1)))
END
SELECT LOWER(SUBSTRING(@MyText,1,1))+ SUBSTRING(@MyText, 2, LEN(@MyText) -1)
@MikaelEriksson yup,我沒有測試那個。我測試過像First_Name_Test等,我不會編輯我的東西來包含'Stuff()',因爲它是你答案的副本。 – Taryn 2012-08-14 11:30:40
這是一個副本不再:)。 – 2012-08-14 11:36:49
@MikaelEriksson感謝您的編輯。我沒有想到名稱中有相同的字符重複。我總是忘記'Stuff()' – Taryn 2012-08-14 11:37:40