คำถามติดแท็ก tsql

T-SQL (ภาษาคิวรีธุรกรรมเชิงโครงสร้าง) เป็นส่วนเสริมของฟังก์ชัน SQL ที่รองรับโดย Sybase ASE และ Microsoft SQL Server อย่าใช้แท็กนี้สำหรับการสืบค้นที่เกี่ยวข้องกับ MySQL, PostgreSql, Oracle (Pl / SQL) โปรดทราบว่ารหัส SQL ที่กำลังเขียนโดยใช้ LINQ จะไม่เป็นส่วนหนึ่งของแท็กนี้ด้วย แท็กนี้สร้างขึ้นโดยเฉพาะสำหรับการเขียนโปรแกรม SQL ขั้นสูงโดยใช้ Microsoft SQL Server

20
รับ 1 แถวแรกของแต่ละกลุ่ม
ฉันมีตารางที่ฉันต้องการรับรายการล่าสุดสำหรับแต่ละกลุ่ม นี่คือตาราง: DocumentStatusLogs โต๊ะ |ID| DocumentID | Status | DateCreated | | 2| 1 | S1 | 7/29/2011 | | 3| 1 | S2 | 7/30/2011 | | 6| 1 | S1 | 8/02/2011 | | 1| 2 | S1 | 7/28/2011 | | 4| 2 | S2 | 7/30/2011 …

23
วิธีที่ดีที่สุดในการลบส่วนเวลาของวันที่และเวลาใน SQL Server
วิธีใดให้ประสิทธิภาพที่ดีที่สุดเมื่อเอาส่วนเวลาออกจากเขตข้อมูลวันที่ใน SQL Server a) select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) หรือ b) select cast(convert(char(11), getdate(), 113) as datetime) วิธีที่สองส่งไบต์เพิ่มอีกสองสามวิธี แต่อาจไม่สำคัญเท่ากับความเร็วของการแปลง ทั้งสองดูเหมือนจะเร็วมาก แต่อาจมีความแตกต่างของความเร็วเมื่อจัดการกับแถวนับแสนหรือมากกว่านั้น นอกจากนี้เป็นไปได้ไหมว่ามีวิธีที่ดีกว่าในการกำจัดส่วนเวลาของวันที่และเวลาใน SQL?
514 sql  sql-server  tsql  datetime  date 

12
T-SQL: การเลือกแถวเพื่อลบผ่านการรวม
สถานการณ์: สมมติว่าฉันมีสองตาราง TableA และ TableB คีย์หลักของ TableB คือคอลัมน์เดียว (BId) และเป็นคอลัมน์คีย์ต่างประเทศใน TableA ในสถานการณ์ของฉันฉันต้องการลบแถวทั้งหมดใน TableA ที่เชื่อมโยงกับแถวที่ระบุใน TableB: ฉันสามารถทำสิ่งนั้นผ่านการรวมได้หรือไม่ ลบแถวทั้งหมดที่ดึงออกจากการรวมหรือไม่ DELETE FROM TableA FROM TableA a INNER JOIN TableB b ON b.BId = a.BId AND [my filter condition] หรือฉันถูกบังคับให้ทำเช่นนี้: DELETE FROM TableA WHERE BId IN (SELECT BId FROM TableB WHERE [my filter condition]) …
494 tsql  join 

30
ฉันจะแยกสตริงเพื่อให้สามารถเข้าถึงรายการ x ได้อย่างไร
การใช้ SQL Server ฉันจะแยกสตริงเพื่อให้สามารถเข้าถึงรายการ x ได้อย่างไร ใช้สตริง "Hello John Smith" ฉันจะแบ่งสตริงตามช่องว่างและเข้าถึงรายการที่ดัชนี 1 ซึ่งควรส่งคืน "John" ได้อย่างไร
493 sql  sql-server  tsql  split 



28
ไม่สามารถตัดทอนตารางได้เนื่องจากมีการอ้างอิงโดยข้อ จำกัด ของคีย์ต่างประเทศหรือไม่
การใช้ MSSQL2005 ฉันสามารถตัดทอนตารางด้วยข้อ จำกัด foreign key ได้หรือไม่ถ้าฉันตัดทอนตารางลูก (ตารางที่มีคีย์หลักของความสัมพันธ์ FK) เป็นอันดับแรก ฉันรู้ว่าฉันสามารถ ใช้DELETEคำสั่งที่ไม่มีตำแหน่งและจากนั้นจึงRESEEDระบุตัวตน ลบ FK ตัดทอนตารางและสร้าง FK ใหม่ ฉันคิดว่าตราบใดที่ฉันตัดทอนตารางลูกต่อหน้าพ่อแม่ฉันก็โอเคโดยไม่ทำตามตัวเลือกข้างต้น แต่ฉันได้รับข้อผิดพลาดนี้: ไม่สามารถตัดทอนตาราง 'TableName' ได้เนื่องจากกำลังถูกอ้างถึงโดยข้อ จำกัด ของ FOREIGN KEY

18
เลือกคอลัมน์จากชุดผลลัพธ์ของกระบวนงานที่เก็บไว้
ฉันมีขั้นตอนการจัดเก็บที่ส่งคืน 80 คอลัมน์และ 300 แถว ฉันต้องการเขียนตัวเลือกที่ได้รับ 2 ของคอลัมน์เหล่านั้น สิ่งที่ต้องการ SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2' เมื่อฉันใช้ไวยากรณ์ข้างต้นฉันได้รับข้อผิดพลาด: "ชื่อคอลัมน์ไม่ถูกต้อง" ฉันรู้ว่าวิธีที่ง่ายที่สุดคือเปลี่ยนกระบวนงานที่เก็บไว้ แต่ฉันไม่ได้เขียนและไม่สามารถเปลี่ยนแปลงได้ มีวิธีทำสิ่งที่ฉันต้องการหรือไม่? ฉันสามารถสร้างตารางชั่วคราวเพื่อใส่ผลลัพธ์ แต่เนื่องจากมี 80 คอลัมน์ดังนั้นฉันจึงต้องสร้างตารางอุณหภูมิคอลัมน์ 80 เพื่อให้ได้ 2 คอลัมน์ ฉันต้องการหลีกเลี่ยงการติดตามคอลัมน์ทั้งหมดที่ส่งคืน ฉันลองใช้WITH SprocResults AS ....ตามคำแนะนำของ Mark แต่มีข้อผิดพลาด 2 ข้อ ไวยากรณ์ไม่ถูกต้องใกล้กับคำหลัก 'EXEC' ไวยากรณ์ไม่ถูกต้องใกล้กับ ')' ฉันพยายามประกาศตัวแปรตารางและฉันพบข้อผิดพลาดดังต่อไปนี้ ข้อผิดพลาดการแทรก: ชื่อคอลัมน์หรือจำนวนค่าที่ให้มาไม่ตรงกับคำนิยามของตาราง หากฉันลอง SELECT * FROM …

7
แบบสอบถาม SQL Server - การเลือก COUNT (*) ด้วย DISTINCT
ใน SQL Server 2005 ฉันมีตาราง cm_production ที่แสดงรหัสทั้งหมดที่นำไปผลิต ตารางมี ticket_number, program_type และ program_name และ push_number พร้อมกับคอลัมน์อื่น ๆ เป้าหมาย: นับชื่อโปรแกรม DISTINCT ทั้งหมดตามประเภทโปรแกรมและหมายเลขพุช สิ่งที่ฉันมีอยู่คือ: DECLARE @push_number INT; SET @push_number = [HERE_ADD_NUMBER]; SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type] FROM cm_production WHERE push_number=@push_number GROUP BY program_type นี่ทำให้ฉันอยู่ตรงนั้น แต่นับชื่อโปรแกรมทั้งหมดไม่ใช่ชื่อที่ต่างกัน (ซึ่งฉันไม่คิดว่าจะทำในแบบสอบถามนั้น) ฉันเดาว่าฉันไม่สามารถคาดเดาวิธีที่จะบอกให้นับเฉพาะชื่อโปรแกรมที่แตกต่างได้โดยไม่ต้องเลือก หรือบางสิ่งบางอย่าง.

7
เลือกคำสั่งเพื่อค้นหารายการซ้ำในบางฟิลด์
คุณสามารถช่วยฉันด้วยคำสั่ง SQL เพื่อค้นหารายการที่ซ้ำกันในหลายสาขาได้หรือไม่? ตัวอย่างเช่นในรหัสเทียม: select count(field1,field2,field3) from table where the combination of field1, field2, field3 occurs multiple times และจากคำสั่งดังกล่าวหากมีเกิดขึ้นหลายฉันต้องการจะเลือกบันทึกทุกยกเว้นคนแรก

10
แทนที่บรรทัดใหม่ใน TSQL
ฉันต้องการแทนที่ (หรือลบ) อักขระบรรทัดใหม่ในสตริง TSQL ความคิดใด ๆ อย่างชัดเจน REPLACE(@string, CHAR(13), '') แค่จะไม่ทำมัน ...
414 tsql  newline 

17
วางสตริงที่มีศูนย์นำหน้าเพื่อให้มีความยาว 3 อักขระใน SQL Server 2008
ฉันมีสตริงที่ยาวไม่เกิน 3 อักขระเมื่อสร้างขึ้นครั้งแรกใน SQL Server 2008 R2 ฉันต้องการซับด้วยศูนย์นำหน้าดังนั้นถ้าค่าเดิมเป็น '1' ดังนั้นค่าใหม่จะเป็น '001' หรือถ้าค่าเดิมเป็น '23' ค่าใหม่คือ '023' หรือถ้าค่าเดิมเป็น '124' ค่าใหม่จะเหมือนกับค่าเดิม ฉันใช้ SQL Server 2008 R2 ฉันจะทำสิ่งนี้โดยใช้ T-SQL ได้อย่างไร
398 sql-server  tsql 

7
ฉันจะอัปเดต 100 อันดับแรกในเซิร์ฟเวอร์ sql ได้อย่างไร
ฉันต้องการอัปเดต 100 อันดับสูงสุดใน SQL Server ผมมีตารางT1ที่มีเขตข้อมูลและF1 มี 200 บันทึก ฉันต้องการอัปเดตฟิลด์ใน 100 รายการแรกสุด ฉันจะอัปเดตตามใน SQL Server ได้อย่างไรF2T1F1TOP 100

12
เป็นไปได้หรือไม่ที่จะระบุเงื่อนไขใน Count ()?
เป็นไปได้Count()หรือไม่ที่จะระบุเงื่อนไข ฉันต้องการนับเฉพาะแถวที่มีเช่น "ผู้จัดการ" ในคอลัมน์ตำแหน่ง ฉันต้องการที่จะทำมันในคำสั่งการนับไม่ได้ใช้WHERE; ฉันขอเกี่ยวกับเรื่องนี้เพราะผมต้องการที่จะนับทั้งผู้จัดการและอื่น ๆ ในเดียวกันSELECT(สิ่งที่ต้องการCount(Position = Manager), Count(Position = Other))เพื่อWHEREการใช้งานสำหรับฉันในตัวอย่างนี้ไม่มี
391 sql  sql-server  tsql 

14
วิธีทำ SQL Like% ใน Linq
ฉันมีขั้นตอนใน SQL ที่ฉันพยายามเปลี่ยนเป็น Linq: SELECT O.Id, O.Name as Organization FROM Organizations O JOIN OrganizationsHierarchy OH ON O.Id=OH.OrganizationsId where OH.Hierarchy like '%/12/%' บรรทัดที่ฉันกังวลมากที่สุดคือ: where OH.Hierarchy like '%/12/%' ฉันมีคอลัมน์ที่เก็บลำดับชั้นเช่น / 1/3/12 / ดังนั้นฉันจึงใช้% / 12 /% เพื่อค้นหา คำถามของฉันคือ Linq หรือ. NET เทียบเท่ากับการใช้เครื่องหมายเปอร์เซ็นต์คืออะไร?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.