![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - SQL Server 數字串接的問題
(https://www.pcdvd.com.tw/showthread.php?t=965939)
|
|---|
SQL Server 數字串接的問題
請教大家:
在SQL Server當中,要把 last name 'Lin' 與 first name 'Jeromy'串接起來 變成username 'Lin Jeromy',可以用+來串接, 但如果是要數字,如first number '1' 與 second number '2' 串接起來 變成pin number '12', 用+來接我都會搞成 '3', 哪位專家知道要怎樣才會正確地變成 '12' ? 感謝 |
CAST(@a AS VARCHAR(1)) + CAST(@b AS VARCHAR(1))
這樣? |
要先把數字轉成文字。
數字 1 + 數字 2 = 3 文字 1 + 文字 2 = 12 這在大多數的電腦語言都差不多。但是有些可能還是會給妳錯誤。所以最好的方法就是: 1x10 + 2x1 = 12。 |
若是 12 + 34 呢?
轉文字 -> '1234' 豬肉兄的做法 -> 120 + 34 = 154 還是別偷雞啊∼ 引用:
|
引用:
前面大大指的應該是 12* 10(被加數字位數次方) + 被加數 12 * 10的二次方 + 34 12*100 +34 = 1200+34 =1234 |
代碼:
SN PN Value1 Value2 Value3 Results 123 010-10 14 120 17 PASS 124 010-10 132 1 2 PASS 125 020-12 0 1 124 NG 126 010-10 1 22 123 PASS 如果要篩選 PN = 010-10 的所有紀錄,並且需要直接將結果傳回呢? 先不求是否有更好的語法,使用CAST還是比較務實。 SELECT *, CAST(Value1 AS VARCHAR) + CAST(Value2 AS VARCHAR) AS NewValue FROM Table WHERE PN = '010-10' 以我所舉的範例為例,我實在看不出使用乘法的好處在哪... 引用:
|
感謝各位學長討論。
昨天這題沒考,鬆了一口氣,等我期中全部考完,我再來試試cast指令。 還有三科!!加油 :stupefy: |
| 所有的時間均為GMT +8。 現在的時間是01:45 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。