我想過濾我的結果集,只返回以NIR_
開頭的值。過濾器選擇其中值以NIR_開頭
我的SQL語句,這樣做是如下
select * from run where name like %NIR_%
結果集還包括像
NIRMeta_Invalid
NIRMeta_Position
的名字我不知道我做錯了。我只需要選擇以NIR_
開頭的名字。
我想過濾我的結果集,只返回以NIR_
開頭的值。過濾器選擇其中值以NIR_開頭
我的SQL語句,這樣做是如下
select * from run where name like %NIR_%
結果集還包括像
NIRMeta_Invalid
NIRMeta_Position
的名字我不知道我做錯了。我只需要選擇以NIR_
開頭的名字。
如果您希望將其視爲文字,您需要在LIKE
模式中轉義下劃線。
在SQL Server:
select * from run where name like 'NIR[_]%'
在MySQL和Oracle:
select * from run where name like 'NIR\_%'
如果你想的名字,只有擁有NIR
啓動,然後刪除like
模式的第一個通配符:
where name like 'NIR_%'
注意_
也是一個通配符,所以你可能想:
where name like 'NIR\_%'
您可以使用ESCAPE
選項來實現這一目標。
SELECT * FROM run WHERE name LIKE 'NIR#_%' ESCAPE '#'
樣品執行與給定的數據:
DECLARE @Run TABLE (name VARCHAR (100));
INSERT INTO @Run (name) VALUES
('NIR_MA'), ('NIR_RUN'), ('NIRMeta_Invalid'), ('NIRMeta_Position');
SELECT * FROM @Run WHERE name LIKE 'NIR#_%' ESCAPE '#'
結果:
name
-----
NIR_MA
NIR_RUN
對不起,我忘了提,我使用SQL服務器2014年是第一個SELECT語句的作品。謝謝。 – Abe