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

Structured Query Language (SQL) เป็นภาษาสำหรับการสืบค้นฐานข้อมูล คำถามควรมีตัวอย่างรหัสโครงสร้างตารางข้อมูลตัวอย่างและแท็กสำหรับการใช้งาน DBMS (เช่น MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 และอื่น ๆ ) หากคำถามของคุณเกี่ยวข้องกับ DBMS เฉพาะ (ใช้ส่วนขยาย / คุณลักษณะเฉพาะ) ให้ใช้แท็กของ DBMS นั้นแทน คำตอบของคำถามที่ติดแท็กด้วย SQL ควรใช้ SQL มาตรฐาน ISO / IEC

9
วิธีแทรก INSERT ในบันทึกของตารางที่แยกจากตารางอื่น
ฉันพยายามเขียนแบบสอบถามที่แยกและแปลงข้อมูลจากตารางแล้วแทรกข้อมูลเหล่านั้นลงในอีกตารางหนึ่ง ใช่นี่เป็นคลังข้อมูลแบบสอบถามและฉันทำมันใน MS Access ดังนั้นโดยทั่วไปฉันต้องการแบบสอบถามเช่นนี้ INSERT INTO Table2(LongIntColumn2, CurrencyColumn2) VALUES (SELECT LongIntColumn1, Avg(CurrencyColumn) as CurrencyColumn1 FROM Table1 GROUP BY LongIntColumn1); ฉันลอง แต่ได้รับข้อความแสดงข้อผิดพลาดทางไวยากรณ์ คุณจะทำอย่างไรถ้าคุณต้องการทำสิ่งนี้?
177 sql  ms-access 

5
วิธีการดำเนินการแบบสอบถาม IN () SQL ที่มี JDBCTemplate ของ Spring มีผลบังคับใช้อย่างไร
ฉันสงสัยว่ามีวิธีที่สง่างามกว่าในการทำคำสั่ง IN () กับ JDBCTemplate ของ Spring หรือไม่ ขณะนี้ฉันทำอะไรแบบนั้น: StringBuilder jobTypeInClauseBuilder = new StringBuilder(); for(int i = 0; i < jobTypes.length; i++) { Type jobType = jobTypes[i]; if(i != 0) { jobTypeInClauseBuilder.append(','); } jobTypeInClauseBuilder.append(jobType.convert()); } ซึ่งค่อนข้างเจ็บปวดเพราะถ้าฉันมีเก้าบรรทัดเพียงเพื่อสร้างประโยคสำหรับแบบสอบถาม IN () ฉันต้องการได้อะไรเช่นการแทนที่พารามิเตอร์ของข้อความที่เตรียมไว้
177 java  sql  spring  jdbc  jdbctemplate 


13
วิธีการคำนวณเปอร์เซ็นต์ด้วยคำสั่ง SQL
ฉันมีตาราง SQL Server ที่มีผู้ใช้และเกรดของพวกเขา เพื่อประโยชน์ของความเรียบง่ายช่วยให้เพียงแค่บอกว่ามี 2 คอลัมน์ - &name gradeดังนั้นแถวทั่วไปจะเป็นชื่อ: "John Doe", Grade: "A" ฉันกำลังมองหาคำสั่ง SQL หนึ่งคำสั่งที่จะค้นหาเปอร์เซ็นต์ของคำตอบที่เป็นไปได้ทั้งหมด (A, B, C, ฯลฯ ... ) นอกจากนี้ยังมีวิธีการทำเช่นนี้โดยไม่ต้องกำหนดคำตอบที่เป็นไปได้ทั้งหมด (ฟิลด์ข้อความแบบเปิด - ผู้ใช้สามารถป้อน 'ผ่าน / ล้มเหลว', 'ไม่มี' ฯลฯ ... ) ผลลัพธ์สุดท้ายที่ฉันต้องการคือ A: 5%, B: 15%, C: 40%, ฯลฯ ...
177 sql  sql-server  tsql 

8
ตรวจสอบเร็วที่สุดว่ามีแถวอยู่ใน PostgreSQL
ฉันมีแถวจำนวนมากที่ฉันต้องการแทรกลงในตาราง แต่เม็ดมีดเหล่านี้มักจะทำเป็นแบตช์ ดังนั้นฉันต้องการตรวจสอบว่าแถวเดียวจากชุดมีอยู่ในตารางเพราะฉันรู้ว่าพวกเขาทั้งหมดถูกแทรก ดังนั้นจึงไม่ใช่การตรวจสอบคีย์หลัก แต่ไม่ควรสำคัญมากเกินไป ฉันต้องการตรวจสอบแถวเดียวเท่านั้นจึงcount(*)อาจไม่ดีดังนั้นสิ่งที่existsฉันเดา แต่เนื่องจากฉันค่อนข้างใหม่กับ PostgreSQL ฉันควรถามคนที่รู้ ชุดของฉันมีแถวที่มีโครงสร้างดังต่อไปนี้: userid | rightid | remaining_count ดังนั้นหากตารางมีแถวใด ๆ ที่มีให้useridนั่นหมายความว่าพวกมันทั้งหมดอยู่ที่นั่น
177 sql  postgresql 

9
ข้อ จำกัด คีย์ต่างประเทศอาจทำให้เกิดรอบหรือเส้นทางเรียงซ้อนหลายเส้นทาง?
ฉันมีปัญหาเมื่อฉันพยายามเพิ่มข้อ จำกัด ในตารางของฉัน ฉันได้รับข้อผิดพลาด: แนะนำข้อ จำกัด ที่สำคัญของต่างประเทศ 'FK74988DB24B3C886' ในตาราง 'พนักงาน' อาจทำให้เกิดรอบหรือเส้นทางเรียงซ้อนหลายเส้นทาง ระบุ ON DELETE NO ACTION หรือ UPDATE NO ACTION หรือแก้ไขข้อ จำกัด ของรหัสต่างประเทศ ข้อ จำกัด ของฉันอยู่ระหว่างCodeตารางและemployeeตาราง CodeตารางมีId, Name, FriendlyName, และType Valueกระบวนการemployeeมีจำนวนฟิลด์ที่อ้างอิงรหัสเพื่อให้สามารถมีการอ้างอิงสำหรับรหัสแต่ละประเภทได้ ฉันต้องการให้ฟิลด์ถูกตั้งค่าเป็นโมฆะหากรหัสที่อ้างอิงถูกลบ ความคิดใดที่ฉันสามารถทำได้

15
ฉันจะบอกได้อย่างไรเมื่อตาราง MySQL ได้รับการปรับปรุงล่าสุด
ในส่วนท้ายของหน้าของฉันฉันต้องการเพิ่มบางอย่างเช่น "ปรับปรุงครั้งล่าสุด xx / xx / 200x" ด้วยวันที่นี้เป็นครั้งสุดท้ายที่ตาราง mySQL บางตัวได้รับการปรับปรุง วิธีที่ดีที่สุดในการทำเช่นนั้นคืออะไร? มีฟังก์ชั่นในการดึงข้อมูลวันที่อัพเดทล่าสุดหรือไม่? ฉันควรเข้าถึงฐานข้อมูลทุกครั้งที่ต้องการค่านี้หรือไม่?
176 mysql  sql 

14
วิธีการเลือกหลายแถวที่เต็มไปด้วยค่าคงที่?
การเลือกค่าคงที่โดยไม่อ้างอิงตารางนั้นถูกต้องตามกฎหมายในคำสั่ง SQL: SELECT 1, 2, 3 ชุดผลลัพธ์ที่ส่งคืนหลังคือแถวเดียวที่มีค่า ฉันสงสัยว่าถ้ามีวิธีการเลือกหลายแถวพร้อมกันโดยใช้นิพจน์คงที่สิ่งที่ชนิดของ: SELECT ((1, 2, 3), (4, 5, 6), (7, 8, 9)) ฉันต้องการอะไรข้างต้นที่ใช้งานได้และส่งคืนชุดผลลัพธ์ที่มี 3 แถวและ 3 คอลัมน์
176 sql  select  constants 

9
วิธีที่ดีที่สุดในการตรวจสอบ“ ค่าว่างหรือค่าว่าง”
วิธีที่ดีที่สุดในการตรวจสอบว่าค่าเป็นโมฆะหรือสตริงว่างในงบ Postgres sql คืออะไร? ค่าสามารถเป็นนิพจน์แบบยาวดังนั้นจึงควรเขียนว่าตรวจสอบเพียงครั้งเดียว ขณะนี้ฉันกำลังใช้: coalesce( trim(stringexpression),'')='' แต่มันดูน่าเกลียดนิดหน่อย stringexpressionอาจเป็นchar(n)คอลัมน์หรือนิพจน์ที่มีchar(n)คอลัมน์ที่มีช่องว่างต่อท้าย วิธีที่ดีที่สุดคืออะไร

17
ตรวจสอบว่ามีตารางอยู่หรือไม่โดยใช้“ เลือกจาก”
มีวิธีการตรวจสอบว่าตารางที่มีอยู่โดยไม่ต้องเลือกและตรวจสอบค่าจากมันได้หรือไม่ นั่นคือฉันรู้ว่าฉันสามารถไปSELECT testcol FROM testtableและตรวจสอบจำนวนของเขตข้อมูลที่ส่งคืน แต่ดูเหมือนว่าจะต้องมีวิธีที่ตรง / หรูหรามากขึ้นในการทำ
176 mysql  sql 

4
แบบสอบถาม SQL สำหรับการค้นหาระเบียนที่นับ> 1
PAYMENTผมมีตารางชื่อ ภายในตารางนี้ฉันมี ID ผู้ใช้หมายเลขบัญชีรหัสไปรษณีย์และวันที่ ฉันต้องการค้นหาระเบียนทั้งหมดสำหรับผู้ใช้ทั้งหมดที่มีการชำระเงินมากกว่าหนึ่งรายการต่อวันด้วยหมายเลขบัญชีเดียวกัน อัปเดต:นอกจากนี้ควรมีตัวกรองมากกว่านับเฉพาะระเบียนที่มีรหัสไปรษณีย์แตกต่างกัน นี่เป็นลักษณะของตาราง: | user_id | บัญชี _no | zip | วันที่ | | 1 | 123 | 55555 | 12-DEC-09 | | 1 | 123 | 66666 | 12-DEC-09 | | 1 | 123 | 55555 | 13-DEC-09 | | 2 | 456 | 77777 …
176 sql  count  group-by  having 

1
SQL: วิธีการนับจำนวนของค่าที่แตกต่างกันในคอลัมน์?
ฉันมีตาราง SQL ชื่อ "posts" ที่มีลักษณะดังนี้: id | category ----------------------- 1 | 3 2 | 1 3 | 4 4 | 2 5 | 1 6 | 1 7 | 2 หมายเลขหมวดหมู่แต่ละรายการสอดคล้องกับหมวดหมู่ ฉันจะนับจำนวนครั้งที่แต่ละหมวดหมู่ปรากฏในโพสต์ทั้งหมดในแบบสอบถาม SQL หนึ่งรายการได้อย่างไร เป็นตัวอย่างแบบสอบถามดังกล่าวอาจส่งกลับอาร์เรย์สัญลักษณ์เช่นนี้ (1:3, 2:2, 3:1, 4:1) วิธีการปัจจุบันของฉันคือการใช้แบบสอบถามสำหรับแต่ละประเภทที่เป็นไปได้เช่น: SELECT COUNT(*) AS num FROM posts WHERE category=#แล้วรวมค่าส่งคืนลงในอาร์เรย์สุดท้าย อย่างไรก็ตามฉันกำลังมองหาโซลูชันที่ใช้แบบสอบถามเพียงรายการเดียว
176 mysql  sql  count 


7
นับจำนวนครั้งของสตริงในฟิลด์ VARCHAR หรือไม่
ฉันมีโต๊ะแบบนี้: TITLE | DESCRIPTION ------------------------------------------------ test1 | value blah blah value test2 | value test test3 | test test test test4 | valuevaluevaluevaluevalue ฉันพยายามหาวิธีคืนจำนวนครั้งที่สตริงเกิดขึ้นในแต่ละคำอธิบายของ ดังนั้นหากฉันต้องการนับจำนวนครั้ง 'value' ปรากฏขึ้นคำสั่ง sql จะส่งคืนสิ่งนี้: TITLE | DESCRIPTION | COUNT ------------------------------------------------------------ test1 | value blah blah value | 2 test2 | value test | 1 test3 …
175 mysql  sql 

13
ฉันจะใช้ ROW_NUMBER () ได้อย่างไร
ฉันต้องการใช้ROW_NUMBER()เพื่อรับ ... ในการรับmax(ROW_NUMBER())-> หรือฉันเดาว่านี่จะเป็นจำนวนแถวทั้งหมดด้วย ฉันพยายามทำ: SELECT max(ROW_NUMBER() OVER(ORDER BY UserId)) FROM Users แต่ดูเหมือนจะไม่ทำงาน ... หากต้องการROW_NUMBER()ใช้ข้อมูลที่กำหนดเช่น ถ้าฉันมีชื่อและฉันต้องการที่จะรู้ว่าชื่อมาจากแถวใด ฉันคิดว่ามันจะคล้ายกับสิ่งที่ฉันลองสำหรับ # 1 SELECT ROW_NUMBER() OVER(ORDER BY UserId) From Users WHERE UserName='Joe' แต่สิ่งนี้ไม่ได้ผลเช่นกัน ... ความคิดใด ๆ

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