select myvalue from mytable where id=1;
оно возвращает значение 10 цифр (Ex: 1234567890
).
Я хочу, чтобы это значение в формате 1234.56.7890
в качестве возвращаемого значения.
означает myvalue может возвращать значение в требуемом формате, а не в сохраненном формате.
Может кто-нибудь мне помочь. Вы очень довольны.
Здесь немного запутанная альтернатива:
SELECT REVERSE(
INSERT(
INSERT(REVERSE(1234567890), 5, 0, '.'),
8, 0, '.')) AS formatted;
+--------------+
| formatted |
+--------------+
| 1234.56.7890 |
+--------------+
Это работает даже для более коротких чисел - например. 123.
Попробуйте использовать функцию Format.
Это небольшая дорогостоящая команда. но он будет работать, если ваша десятичная позиция фиксирована, а myvalue всегда будет 10 цифр
SELECT LEFT(CONVERT(varchar(10),myvalue),4) + '.' +
SUBSTRING(CONVERT(varchar(10),myvalue),5,2) + '.' +
SUBSTRING(CONVERT(varchar(10),myvalue),7,4)