SQL Server 2008


เจอปัญหาการแปลง datatype จาก float ไปเป็น varchar ข้อมูลจะอยู่ในรูป 1.29913e+006

วิธีแก้

Wrap your float within the str() function which, when given only one parameter, does have the side effect of dropping off everything to the right of the decimal point.

Problem:

select cast(cast(1234567890.01 as float) as varchar)

1.23457e+009

Answer without decimal:

select str(cast(1234567890.01 as float))

1234567890 

Answer with decimal:

select str(cast(1234567890.01 as float),13,2)

 
1234567890.01

ที่มา http://stackoverflow.com/

Advertisements

การแปลง Float เป็น VARCHAR NVARCHAR โดยไม่ให้อยู่ในรูป 100e+5 หรือ ปัดค่า เช่น 95105580.00 ปัดเป็น 95105600

SELECT COST, CONVERT(NVARCHAR(50), CAST(COST AS DECIMAL(38,2))) AS COSTT FROM tblCipList
SELECT COST, STR(COST, 38, 2) AS COSTT FROM tblCipList

Well we all know how to add the values in a column using SUM and GROUP BY.  But what about multiplying the column values?  And also how to calculate running multiplication on a column similar to Running Totals?

Sometime back I came across this interesting question on MSDN SQL Server forumsHow to multiply all values in a table column? I don’t know the reason of such requirement, but very interesting problem though.  Of course there is no such built-in function in SQL Server to do it for you.  But after thinking on it for few minutes, I realize that if you still remember the basics of Mathematics, it is not that difficult to do in T-SQL. (more…)

เวลาเราสร้าง Column ที่เป็น Compute Column จะมีปัญหาตรงเมื่อ Compute Column มีการหารด้วย 0 หรือ Null เราจะทำอย่างไรดีเพื่อแก้ปัญหาเหล่านี้ ดูตัวอย่างตาม Code SQL ด้านล่างเลยครับ (more…)

Generate GUID’s :

UniqueIndentifiers are also knows as GUID’s. To generate a GUID use :

SELECT NEWID() as GuidNo

generates FBF2D8E9-F8BE-4F0B-9D49-7CA7C2E3F22C on my machine

Generate only digits :

SELECT ABS(CAST(CAST(NEWID() AS VARBINARY(5)) AS Bigint)) as UniqueNo

generates 427357674589 on my machine

Generate fixed digit unique numbers :

At times, we may also need to generate fixed digit numbers. You can do that in the following manner :

SELECT REPLACE(STR(CAST(CAST(NEWID() AS binary(5)) AS bigint),12),0,0)

generates 470370453006 on my machine

ที่มา: http://sanjevsharma.blogspot.com/2009/01/generate-unique-number-in-sql-server.html

ปกติ SQL Server จะไม่สามารถ Generate Insert SQL ได้ครับเราต้องทำขึ้นมาเอง
ผม Search Google เจอ 2 เว็บไซต์ที่น่าสนใจครับที่ทำให้เราสามารถ Gen SQL ออกมาได้
ดูรายละเอียดตาม Link เลยครับ

http://www.codeproject.com/KB/database/InsertGeneratorPack.aspx

http://vyaskn.tripod.com/code.htm#inserts 

ผมรวมไว้แล้วครับ Download ได้ตาม Link นี้เลยครับ InsertGenerator 
อ่านวิธีใช้เพิ่มเติมตาม Link เลยนะครับ

พอดีเจอปัญข้อมูลซ้ำกันในระบบงาน คราวนี้จะต้องลบข้อมูลที่เก่ากว่าออก ดูตามรูปครับ
คือจะทำให้ข้อมูลในรูปแรกให้เหลือข้อมูลแค่รูปที่ 2

ต้องใช้ sql command ตามนี้ครับ ถ้าจะลบตัวเก่าทิ้งเลยก็เอาไปประยุกต์อีกทีนะครับ

SELECT	*
FROM	TBL_Duplicate a
WHERE	a.DEPN_RUNDATE = (
			SELECT	MAX(DEPN_RUNDATE)
			FROM	TBL_Duplicate b
			WHERE	a.ASSET_ID = b.ASSET_ID
		)
ORDER	BY ASSET_ID

Download Script ทั้งหมดคลิ๊ก SQL

ที่มา: http://greatfriends.biz?118990