我試圖創建一個查詢,返回以字母A-Z作爲其第一個字符並隨後僅有數字後面的表中返回值的查詢。SQL-Server:查詢返回的代碼僅以字母開頭的數字
例子:
[table].Code
:
0056
A0089
X0023
J0F5
09AG
A91234671
A945353B
查詢將返回以下結果:
A0089
X0023
A91234671
任何幫助將不勝感激,謝謝。
我試圖創建一個查詢,返回以字母A-Z作爲其第一個字符並隨後僅有數字後面的表中返回值的查詢。SQL-Server:查詢返回的代碼僅以字母開頭的數字
例子:
[table].Code
:
0056
A0089
X0023
J0F5
09AG
A91234671
A945353B
查詢將返回以下結果:
A0089
X0023
A91234671
任何幫助將不勝感激,謝謝。
您可以使用[A-Z]
檢查的第一個字符和ISNUMERIC
檢查所有字符,除了從第一個,作爲一個數量:
SELECT Code
FROM mytable
WHERE LEFT(Code,1) LIKE '[A-Z]' AND ISNUMERIC(RIGHT(Code, LEN(Code)-1)) = 1
編輯:
正如@Dan ISNUMERIC
發表評論所述,如果Code
字段包含+
,-
等字符,可能無法給您想要的結果。這ISNUMERIC工作,並有一些字符有點滑稽
SELECT Code
FROM mytable
WHERE LEFT(Code,1) LIKE '[A-Z]' AND
RIGHT(Code, LEN(Code)-1) NOT LIKE '%[^0-9]%'
您可以使用like
進行模式匹配。對於代碼的第一個字符,[A-Z]
將匹配A
Z
之間的任何值。如果你想匹配的小盤股還那麼你可以包括[a-z]
查詢
SELECT
Code
FROM
tablename
WHERE
LEFT(Code,1) LIKE '[A-Z]%'
使用模式匹配
select * from table where left(code,1) like '[a-Z][a-Z]%'
注:可以代替試試這個。例如,'ISNUMERIC('$')','ISNUMERIC('。')'和'ISNUMERIC(' - ')'可能會返回與您所期望的不同的結果。 – Dan 2015-02-10 10:51:37
@丹你可以看看我所做的編輯。 – 2015-02-10 11:08:35
太好了,謝謝。 – Revokez 2015-02-10 11:13:48