2012-03-27 85 views
0

我知道我很接近解决这个问题,但需要一点帮助。我想要做的是从特定的表格中抓取一列,但是切掉前4个字符。例如,如果列中的值是“KPIT08L”,则结果是08L。这是我迄今为止所得到的结果,但没有得到理想的结果。如何在SQL查询中执行字符串操作

SELECT LEFT(FIELD_NAME, 4) 
FROM TABLE_NAME 

回答

2

首先,left会给你最左边的字符。如果你想开始在特定位置的字符,你需要寻找到mid

select mid (field_name,5) ... 

其次,如果你看重性能,便携性和可扩展性可言,这种“分列”的操作一般应避免。将色谱柱拼接在一起比将它们拆开更容易(也更快)。

换句话说,将前四个字符保留在自己的列中,其余的保留在单独的列中,然后在相关的列上进行选择。如果您使用的内容少于整列,则在技术上不是,而是该行的一个属性。

1

SELECT MID(FIELD_NAME, 5) FROM TABLE_NAME 

中秋节尝试是非常强大的,它让你选择的出发点和所有其余的,或者,
如果指定的长度

SELECT MID(FIELD_NAME, 5, 2) FROM TABLE_NAME ' gives 08 in your example text 
desidered为
0
SELECT RIGHT(FIELD_NAME,LEN(FIELD_NAME)-4) 
FROM TABLE_NAME; 

如果它是一个通用的字符串,然后上面的人会工作...

+1

这当然假定字符串将有7个字符,这可能并非总是如此。 – NullUserException 2012-03-27 15:07:45

+0

对于这个特定的字符串,它将工作... – Teja 2012-03-27 15:10:29

0

不必在我目前的位置访问,但请试试这个。

SELECT RIGHT(FIELD_NAME, LEN(FIELD_NAME)-4) 
FROM TABLE_NAME 
+1

似乎一个迂回的方式来使用'mid()':-) – paxdiablo 2012-03-27 15:09:45

+0

@paxdiablo嘿。你是对的! – 2012-03-27 15:35:00

0

LEFT(FIELD_NAME,4)将返回FIELD_NAME的前4个字符。

你需要做的是:

SELECT MID(FIELD_NAME, 5) 
FROM TABLE_NAME 

如果你有10个caracters一个FIELD_NAME,该函数将返回6个最后caracters(切碎第4)!