SQL Server查询类似int的varchar数据
技术问答
335 人阅读
|
0 人回复
|
2023-09-14
|
我有一张
7 b! k/ ?, ^( S8 U5 {表
" I7 Z/ F3 J# M/ X' _7 w! YCREATE TABLE table_name/ D3 q. j$ Y, {% ~2 H
(* N3 S- H, x* u0 N3 r
P_Id int,% y7 N9 l. ^/ F# ~8 H; I( e6 r+ ~
amount varchar(50)2 J8 Q& x$ j" a5 ?
): J7 b+ V5 d1 B3 e% Q/ q
数据喜欢! S4 y1 B* y" o- F6 `+ s
Id amount3 s9 z- @' w ?, V5 Q
----------, r3 W; T4 Y' d$ b3 C5 U
1 2340
) n) o* g! Z8 e: w. P2 4568
9 q# o1 p& Q+ `' y, D R( G3 10000( o9 `" E# R; S5 Z
现在我想按数量对表进行排序,但是一个问题是数量是varchar,所以它像这样对表进行排序
0 h- h( ?2 }, O6 a% _: P- mId amount
5 j8 }+ |! @- h6 \# P% E1 k----------/ w# D# a! i, q1 Q3 U! r+ H
3 10000! A0 S! ~. _. x: g3 c# [8 v" G
1 2340
# D+ t/ \" e8 U3 U B6 e2 45682 i3 P& g* X$ b* e
但我想要这样的结果
5 s& L5 q3 e+ Z5 p# ~; ]Id amount1 d5 u8 M1 M; Z1 i( h0 S1 N
----------2 V4 ^0 c5 _5 r x( Q6 `
3 100004 B' X6 K# d9 b T9 D( Z/ A$ d
2 45686 p* Y0 Y+ Q- r- q
1 2340- i0 ?5 M2 b, Z2 q0 g
我该怎么办 ?
, l& Z, P ]: z& B
/ s8 l3 _ e- p1 P$ t8 Z, w% b8 ^* a解决方案:
4 [* l1 `3 y% z! W1 R
1 q2 c, g7 x* E3 _1 g% r' R
& H" M5 O. a5 a' v: ?# m
1 x$ W# V& e4 B# S1 y 选择以下内容时,将金额列转换为“数值输入”ORDER BY子句:7 D/ L5 R+ q: c2 W. m3 |, v/ i- A
SELECT * FROM MyTable
4 o# j# L2 c( W8 r4 _ORDER BY CAST(amount AS Numeric(10,0)) DESC8 Z4 Y! T( _( P) G8 l
结果:
( f- U1 }5 n; X" L2 H[table][tr][td]
/ A* K6 s9 c+ M1 b) u" ^4 J2 xID1 g& M. G! s% V) N4 W: A0 m
[/td][td]) j3 a" H, ]3 a: A) e% _# X) ~9 \0 \$ L
数量
+ `+ m% o+ _9 _[/td][/tr][tr][td]9 s" n5 I/ v6 q, f+ l) _- C. z
3+ p9 c" q& W9 e# D U# Q Z) d
[/td][td]
& S" M" j+ q3 D4 l& V. R10000% Y5 `+ a5 p d6 G* N
[/td][/tr][tr][td]% E$ Z* x5 t& ~4 }# x! x/ x( g
2个
- K* ^5 I. T9 z4 Q, o# `$ {[/td][td]2 g- P9 X' z% Y, ~5 B+ [
4568) T; c% Z ^/ X( X$ r. B
[/td][/tr][tr][td]; f0 r7 [) K& X4 g6 }
1个
3 j7 s$ _% i8 E0 C0 |6 j[/td][td]- ^. Q; k# \5 ~" S; _
2340
7 l' t1 T k) \) u
l0 r* ?/ P8 x, {; K( z: O8 P看到这个SQLFiddle |
|
|
|
|
|