我正在使用MS SQL Server2014。我有一个表,其中包含如下所示的字符串(分配给字段CAR):
ORANGE 1 FORD FIESTA;PETROL
RED 24 FORD MUSTANG; PETROL
BLACK 2 NISSAN JUKE; DIESEL
但是,我需要提取从第二个空间''到第一个半冒号的所有内容;如下所示:
FORD FIESTA
FORD MUSTANG
NISSAN JUKE
这是我的SQL:
SELECT SUBSTRING(CAR, CHARINDEX(' ', CAR) , CHARINDEX(';',CAR) - CHARINDEX(' ', CAR) + Len(';'))
FROM tblStock;
但是,这给了我以下内容:
1 FORD FIESTA;
24 FORD MUSTANG;
2 NISSAN JUKE;
我要去哪里错了?
答案 0 :(得分:2)
另一个选择
示例
Declare @YourTable Table ([Car] varchar(50))
Insert Into @YourTable Values
('ORANGE 1 FORD FIESTA;PETROL')
,('RED 24 FORD MUSTANG; PETROL')
,('BLACK 2 NISSAN JUKE; DIESEL')
Select A.*
,NewValue = stuff(left(Car,charindex(';',Car+';')-1),1,patindex('%[0-9] %',Car+'0'),'')
From @YourTable A
返回
Car NewValue
ORANGE 1 FORD FIESTA;PETROL FORD FIESTA
RED 24 FORD MUSTANG; PETROL FORD MUSTANG
BLACK 2 NISSAN JUKE; DIESEL NISSAN JUKE
答案 1 :(得分:1)
您正在选择从第一个空格到第一个分号的所有内容。
您可以从“第一个分号”到第一个“后跟数字的空格”中取反的字符串(假设每个记录中都有数字),然后最终取反返回的字符串。
function Loggear({ email, password }) {
return db.ref("Usuarios")
.orderByChild("email")
.equalTo(email)
.once("value", (snapshot) => {
console.log(snapshot.val())
return snapshot.val();
});
}
请找到db <>提琴here。