使用某些「額外符號」具有數字nvarchar值例如1/2,9/6,14A它們總是以數字開頭。
如何將此「extra-symbols」值從開始索引到第一個非int字符的索引?這個例子行必須1,9,14
喜歡的東西子字符串sql nvarchar從開始到第一個非int字符的值
SUBSTRING(Value, 0, CHARINDEX(Value, /*Here must be all symbols except numbers*/))
使用某些「額外符號」具有數字nvarchar值例如1/2,9/6,14A它們總是以數字開頭。
如何將此「extra-symbols」值從開始索引到第一個非int字符的索引?這個例子行必須1,9,14
喜歡的東西子字符串sql nvarchar從開始到第一個非int字符的值
SUBSTRING(Value, 0, CHARINDEX(Value, /*Here must be all symbols except numbers*/))
請嘗試查詢:
SELECT LEFT(ColumnName,PATINDEX('%[^0-9]%', ColumnName+'a')-1) FROM TABLE
傳遞給LEFT或SUBSTRING函數的長度參數無效。看起來像PATINDEX返回「-1」 – user1024448
是的,這個列只有int值和int與額外的符號值。在附加符號值上,PATINDEX返回索引,只有int值返回-1 – user1024448
這個'SELECT LEFT(ColumnName,PATINDEX('%[^ 0-9]%',ColumnName +'a') - 1)FROM TABLE'如何? – TechDo
試試這個:避免附加
SELECT CASE PATINDEX('%[^0-9]%', ColumnName) WHEN 0 THEN ColumnName
ELSE LEFT(ColumnName,PATINDEX('%[^0-9]%', ColumnName)-1) END
另一種選擇一個字符到表中的每一行:
SELECT SUBSTRING(col, 1, COALESCE(NULLIF(PATINDEX('%[^0-9]%', col)-1, -1), 255))
FROM dbo.mytable;
您使用哪種RDBMS? – Parado
其MS SQL 2008 R2 – user1024448