我有這樣一個數據庫字符串:如何選擇只在SQL SELECT語句中的特定符號之前出現的字符
[email protected]/IMCLientName
,我只需要在@符號之前出現的字符。
我想在SQL中找到一個簡單的方法來做到這一點。
我有這樣一個數據庫字符串:如何選擇只在SQL SELECT語句中的特定符號之前出現的字符
[email protected]/IMCLientName
,我只需要在@符號之前出現的字符。
我想在SQL中找到一個簡單的方法來做到這一點。
DECLARE @email VARCHAR(100)
SET @email = '[email protected]/IMCLientName'
SELECT SUBSTRING(@email,0, CHARINDEX('@',@email))
大廈Ian Nelson的例子中,我們可以添加一個快速檢查,所以我們返回初始值,如果我們沒有找到我們的索引。
DECLARE @email VARCHAR(100)
SET @email = 'firstname.lastname.email.com/IMCLientName'
SELECT CASE WHEN CHARINDEX('@',@email) > 0
THEN SUBSTRING(@email,0, CHARINDEX('@',@email))
ELSE @email
END AS email
這將返回'firstname.lastname.email.com/IMCLientName'。如果您使用'[email protected]/IMCLientName',那麼您將收到'firstname.lastname'。
謝謝伊恩,這工作得非常好。 –
如果找不到該字符會怎麼樣?例如如果'SET @email ='firstname.lastname.email.com'',這個例子中選擇了什麼? – qJake
@SpikeX將選擇一個空字符串。 –