【MS-SQL】拼湊SQL語法 字串轉換型態

使用C#或其他語言在拼湊SQL語法時,

常常會遇到datetime, bit, guid等型態到底要不要加加單引號、是否需要預設值、轉換型態等等問題,

小編最近Coding時也有碰到這些問題,

因此稍微整理一下若要用C#Replace語法:

String.Replace(“{string_pattern}”, “string_replacement”);

常常連接SQL字串需要下一些判斷、給預設值相關語法如下:

--Nvarchar, Char, Varchar, Nchar, Ntext...
'{string_pattern }'
convert(varchar(19),convert(datetime, replace(replace(‘{string_pattern }’,’上午 ‘,”),’下午 ‘,”)+case when charindex(‘上午’,’{string_pattern }’)>0 then ‘AM’ when charindex(‘下午’,’{string_pattern }’)>0 then ‘PM’ end),120)
CASE WHEN ‘{string_pattern }’ = ” THEN ‘False’ WHEN ‘{string_pattern }’ = ‘NULL’ THEN ‘False’ ELSE ‘{string_pattern }’ END
--uniqueidentifier 需要給他預設值’00000000-0000-0000-0000-000000000000′
CASE WHEN ‘{string_pattern }’ = ” THEN ’00000000-0000-0000-0000-000000000000′ WHEN ‘{string_pattern }’ = ‘NULL’ THEN ’00000000-0000-0000-0000-000000000000′ ELSE ‘{string_pattern }’ END
--Bigint, Numeric, Bit, Smallint, Decimal, Smallmoney, Int, Tinyint, Money, Float, Real...

CAST(CASE WHEN ‘{string_pattern }’ = ” THEN 0 WHEN ‘{string_pattern }’ = ‘NULL’ THEN 0 ELSE convert(decimal(19,5),’{string_pattern }’) END AS decimal(19,5))

 

留言

發佈留言

Top