国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

sql server 之函數小技巧 && 整數類型為空是用空字符串替代實現

2024-08-31 00:54:12
字體:
來源:轉載
供稿:網友
sql server 之函數小技巧 && 整數類型為空是用空字符串替代實現

1、判空函數

說明:使用指定的替換值替換 NULL。

語法:ISNULL ( check_exPRession , replacement_value )

參數:

check_expression:將被檢查是否為 NULL 的表達式。check_expression 可以為任何類型。

replacement_value:當 check_expression 為 NULL 時要返回的表達式。replacement_value 必須是可以隱式轉換為 check_expresssion 類型的類型。

返回值:返回與 check_expression 相同的類型。

注釋:如果 check_expression 不為 NULL,則返回它的值;否則,在將 replacement_value 隱式轉換為 check_expression 的類型(如果這兩個類型不同)后,則返回前者。

實例:

加入int類型的Flag1為一,則用0代替它的值

ISNULL(Flag1,0)   //加入int類型的Flag1為一,則用0代替它的值

  注意:因為Flag1是整數(int)類型的,所以后面值肯定也要是int類型的,否則不能通過。因為假如一個數據為空,傳到頁面顯示的時候就會出現undefined,對于程序員來說,這是很正常的事情,很明確就知道它是一個空值,但對于普通用戶,undefined就很費解了,我們怎么樣才能在一個整形字段為空,用空字符串替代呢?用ISNULL肯定是不能解決的,不要著急,我們可以使用ISNULL、case when和conver函數進行解決。


2、case when

CASE WHEN的兩種格式

1.簡單Case函數

CASE sex         WHEN '1' THEN '男'         WHEN '2' THEN '女'ELSE '其他' END

2.Case搜索函數

CASE WHEN sex = '1' THEN '男'         WHEN sex = '2' THEN '女'ELSE '其他' END

1).兩者相比,Case搜索函數功能更強。

2).Case函數類似于if……else if 語句,只返回第一個符合條件的值,之后的部分會被忽略


3、convert函數

CONVERT() 函數是把日期轉換為新數據類型的通用函數。

CONVERT() 函數可以用不同的格式顯示日期/時間數據。

語法:

CONVERT(data_type(length),data_to_be_converted,style)

 

data_type(length)規定目標數據類型(帶有可選的長度)。data_to_be_converted含有需要轉換的值。style規定日期/時間的輸出格式。

可以使用的style值:

Style IDStyle 格式
100 或者 0mon dd yyyy hh:miAM (或者 PM)
101mm/dd/yy
102yy.mm.dd
103dd/mm/yy
104dd.mm.yy
105dd-mm-yy
106dd mon yy
107Mon dd, yy
108hh:mm:ss
109 或者 9mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110mm-dd-yy
111yy/mm/dd
112yymmdd
113 或者 13dd mon yyyy hh:mm:ss:mmm(24h)
114hh:mi:ss:mmm(24h)
120 或者 20yyyy-mm-dd hh:mi:ss(24h)
121 或者 21yyyy-mm-dd hh:mi:ss.mmm(24h)
126yyyy-mm-ddThh:mm:ss.mmm(沒有空格)
130dd mon yyyy hh:mi:ss:mmmAM
131dd/mm/yy hh:mi:ss:mmmAM
實例

下面的腳本使用 CONVERT() 函數來顯示不同的格式。我們將使用 GETDATE() 函數來獲得當前的日期/時間:

CONVERT(VARCHAR(19),GETDATE())CONVERT(VARCHAR(10),GETDATE(),110) CONVERT(VARCHAR(11),GETDATE(),106)CONVERT(VARCHAR(24),GETDATE(),113)

結果類似:

Dec 29 2008 11:45 PM12-29-200829 Dec 0829 Dec 2008 16:25:46.635

 CONVERT() 函數將一種類型的數據轉換為另外一種數據類型。

CONVERT(要轉換到的數據類型,字段名)

  例子:將int類型的Flag1轉換為varchar(10)類型

convert(varchar(10),Flag1)


4、解決不同類型int類型為空時,用空字符串代替

  1、假如它是空,就將其轉換為0

2、因為空字符串也是字符串,所以當Flag1不是為空的時候,還是需要將其轉換為字符串,所以無論Flag1是否為空,結果都是字符串,所以這樣子能運行

case  when 0 = ISNULL(Flag1,0)   then ' 'else convert(varchar(10),Flag1)end

  自己想出來的,可能效率比較低,假如有更好的方法,希望賜教!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大新县| 绿春县| 泰州市| 南陵县| 化德县| 临高县| 凤山县| 蓝山县| 辽中县| 开封县| 潮安县| 平江县| 永善县| 双柏县| 河源市| 张北县| 武邑县| 吉木乃县| 昔阳县| 前郭尔| 简阳市| 东山县| 屏东市| 鹰潭市| 瑞安市| 沙田区| 榆社县| 沙河市| 长汀县| 同江市| 上杭县| 承德县| 砚山县| 广饶县| 临泉县| 新竹县| 滁州市| 基隆市| 天水市| 江孜县| 兴海县|