PCDVD數位科技討論區

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)

Select_from 2012-04-20 04:07 AM

SQL Server 數字串接的問題
 
請教大家:

在SQL Server當中,要把 last name 'Lin' 與 first name 'Jeromy'串接起來

變成username 'Lin Jeromy',可以用+來串接,

但如果是要數字,如first number '1' 與 second number '2' 串接起來

變成pin number '12', 用+來接我都會搞成 '3',

哪位專家知道要怎樣才會正確地變成 '12' ?

感謝

bestbuy 2012-04-20 04:17 AM

CAST(@a AS VARCHAR(1)) + CAST(@b AS VARCHAR(1))

這樣?

A級黑豬肉 2012-04-20 04:20 AM

要先把數字轉成文字。

數字 1 + 數字 2 = 3
文字 1 + 文字 2 = 12

這在大多數的電腦語言都差不多。但是有些可能還是會給妳錯誤。所以最好的方法就是: 1x10 + 2x1 = 12。

ivantw 2012-04-20 06:10 AM

若是 12 + 34 呢?
轉文字 -> '1234'
豬肉兄的做法 -> 120 + 34 = 154
還是別偷雞啊∼


引用:
作者A級黑豬肉
要先把數字轉成文字。

數字 1 + 數字 2 = 3
文字 1 + 文字 2 = 12

這在大多數的電腦語言都差不多。但是有些可能還是會給妳錯誤。所以最好的方法就是: 1x10 + 2x1 = 12。

Devil 2012-04-20 08:19 AM

引用:
作者ivantw
若是 12 + 34 呢?
轉文字 -> '1234'
豬肉兄的做法 -> 120 + 34 = 154
還是別偷雞啊∼

前面大大指的應該是
12* 10(被加數字位數次方) + 被加數
12 * 10的二次方 + 34
12*100 +34 = 1200+34 =1234

ivantw 2012-04-21 12:29 AM

代碼:
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'

以我所舉的範例為例,我實在看不出使用乘法的好處在哪...

引用:
作者Devil
前面大大指的應該是
12* 10(被加數字位數次方) + 被加數
12 * 10的二次方 + 34
12*100 +34 = 1200+34 =1234

Select_from 2012-04-21 08:25 AM

感謝各位學長討論。

昨天這題沒考,鬆了一口氣,等我期中全部考完,我再來試試cast指令。

還有三科!!加油 :stupefy:


所有的時間均為GMT +8。 現在的時間是01:45 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。