web-dev-qa-db-fra.com

Comment puis-je obtenir les 3 premiers chiffres de 123456 Numéros en sql?

J'ai un champ appelé CallingParty dans ma table CDR, il contient des données comme celle-ci

CallingParty

267672668788

Je veux sélectionner les 3 premiers chiffres de chacun de ces nombres comme

CallingParty

267

8
Cabaas Cabdi

si CallingParty est de type int:

SELECT CAST(LEFT(CallingParty, 3) AS INT)
From CDR
8
Habib

Utilisez cette requête:

SELECT SUBSTRING(CAST(CallingParty AS VARCHAR(50)), 1, 3) FROM [CDR]
1
Nick

SQL Server a une fonction Left (), mais cela fonctionne mieux sur les chaînes. (varchar/char en SQL)

Select left(cast(267672668788 as varchar), 3)
1
dbrosier

Si la longueur des données ne change pas, vous pouvez toujours diviser par 10 * les chiffres que vous avez.

SELECT FLOOR(267672668788 / 1000000000)
=267
0
vfrank66