问题
I have field called CallingParty in My CDR table it contains data like this
CallingParty
267672668788
I want to select the first 3 number of each of those numbers like
CallingParty
267
回答1:
if CallingParty
is of type int:
SELECT CAST(LEFT(CallingParty, 3) AS INT)
From CDR
回答2:
SQL Server has a Left() function, but it works best on strings. (varchar/char in SQL)
Select left(cast(267672668788 as varchar), 3)
回答3:
Use this query:
SELECT SUBSTRING(CAST(CallingParty AS VARCHAR(50)), 1, 3) FROM [CDR]
回答4:
If the data length does not change then you can always divide by 10 * the digits you have
SELECT FLOOR(267672668788 / 1000000000)
=267
回答5:
Try this:
SELECT Substring(callingparty, 1, Length(callingparty) - 9)
FROM cdr;
来源:https://stackoverflow.com/questions/10828804/how-i-can-get-the-first-3-digits-in-123456-numbers-in-sql