2012-03-20 29 views
0

我有一個表有八位數字的開頭00************** 如果數字以00開頭,我必須消除00並選擇其餘的6位數字,數據的前六位數字。請讓我知道我該怎麼做?如何消除數字的前兩個數字以及如何獲取mysql查詢中的最後6位數字?

+2

歡迎來到Stack Overflow。請花時間閱讀[常見問題]和[問]。在提問時,它總是有助於指定[你嘗試過的](http://mattgemmell.com/2008/12/08/what-have-you-tried/),這樣人們就能更好地提供幫助。 – Ben 2012-03-20 18:14:48

+0

看來你已經找到了適合你的答案。你應該像這樣標記它。 (通過點擊答案旁邊的灰色複選標記來做到這一點,它應該變爲綠色) – 2012-03-21 15:01:28

回答

2
SELECT CASE WHEN SUBSTRING(Col,1,2)='00' 
        THEN SUBSTRING(Col,3,8) 
       ELSE SUBSTRING(Col,1,6) 
       END AS Col  
    FROM YOURTABLE; 
+0

關閉,但在第二種情況下,他需要將其修剪爲8位數字中的前6位。 – 2012-03-20 17:50:11

+0

我並不是那個發出低落的人。事實上,我認爲這是毫無道理的。 – 2012-03-20 17:52:28

+1

可能,downvote是因爲SUBSTRING(Col,3,8)'。它應該是'SUBSTRING(Col,3,6)'。 (雖然在這種情況下兩者應該都是一樣的,因爲只有8位數字。) – 2012-03-20 18:55:04

1

假設它是一個CHAR(8)命名the_column

SELECT IF(the_column REGEXP '^ 00',RIGHT(the_column,6),LEFT(the_column,6))爲X FROM some_table

+------------+ 
| the_column | 
+------------+ 
| 0| 
| 87654321 | 
+------------+ 


mysql> SELECT IF(the_column REGEXP '^00', RIGHT(the_column, 6), LEFT(the_column, 6)) x 
FROM foo; 
+--------+ 
| x  | 
+--------+ 
| 123456 | 
| 876543 | 
+--------+ 
相關問題