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

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

5
การรวมตารางสองตารางที่มีจำนวนคอลัมน์ต่างกัน
ฉันมีสองตาราง (ตาราง A และตาราง B) คอลัมน์เหล่านี้มีจำนวนคอลัมน์ที่แตกต่างกัน - สมมติว่าตาราง A มีคอลัมน์มากกว่า ฉันจะรวมสองตารางนี้และรับค่าว่างสำหรับคอลัมน์ที่ตาราง B ไม่มีได้อย่างไร
107 sql  mysql 

20
ฉันจะหา“ ช่องว่าง” ในการรันตัวนับด้วย SQL ได้อย่างไร
ฉันต้องการหา "ช่องว่าง" แรกในคอลัมน์ตัวนับในตาราง SQL ตัวอย่างเช่นหากมีค่า 1,2,4 และ 5 ฉันต้องการค้นหา 3 แน่นอนฉันสามารถรับค่าตามลำดับและดำเนินการด้วยตนเองได้ แต่ฉันต้องการทราบว่าจะมีวิธีดำเนินการใน SQL หรือไม่ นอกจากนี้ควรเป็น SQL มาตรฐานที่ทำงานร่วมกับ DBMS ที่แตกต่างกัน

6
MySQL - ทำไมไม่ทำดัชนีทุกฟิลด์?
เมื่อเร็ว ๆ นี้ฉันได้เรียนรู้ถึงความน่าอัศจรรย์ของดัชนีและประสิทธิภาพการทำงานดีขึ้นอย่างมาก อย่างไรก็ตามจากทั้งหมดที่ฉันได้เรียนรู้มาดูเหมือนว่าฉันจะหาคำตอบสำหรับคำถามนี้ไม่ได้ ดัชนีเป็นสิ่งที่ดี แต่ทำไมบางคนไม่สามารถจัดทำดัชนีเขตข้อมูลทั้งหมดเพื่อให้ตารางเร็วอย่างไม่น่าเชื่อ ฉันแน่ใจว่ามีเหตุผลที่ดีที่จะไม่ทำสิ่งนี้ แต่สามฟิลด์ในตารางสามสิบฟิลด์ล่ะ? 10 ใน 30 ช่อง? เราควรลากเส้นตรงไหนและทำไม?
107 mysql  sql  indexing 


3
ปัญหาการดำเนินการแปลก ๆ ใน SQL Server: -100 / -100 * 10 = 0
หากคุณดำเนินการผลที่ได้คือSELECT -100/-100*100 หากคุณดำเนินการผลที่ได้คือSELECT (-100/-100)*1010 หากคุณดำเนินการผลที่ได้คือSELECT -100/(-100*10)0 หากคุณดำเนินการผลที่ได้คือSELECT 100/100*1010 สถานะBOL : เมื่อตัวดำเนินการสองตัวในนิพจน์มีระดับความสำคัญของตัวดำเนินการเหมือนกันระบบจะประเมินจากซ้ายไปขวาตามตำแหน่งในนิพจน์ และ Level Operators 1 ~ (Bitwise NOT) 2 * (Multiplication), / (Division), % (Modulus) 3 + (Positive), - (Negative), + (Addition), + (Concatenation), - (Subtraction), & (Bitwise AND), ^ (Bitwise Exclusive OR), | (Bitwise OR) BOL ผิดหรือฉันพลาดอะไรไป? ดูเหมือนว่า-กำลังทำให้ความสำคัญ (ที่คาดหวัง) …

9
MySQL รวมสองคอลัมน์เป็นคอลัมน์เดียว
ฉันกำลังพยายามหาวิธีที่จะรวมสองคอลัมน์เข้าด้วยกัน แต่ยังคงได้รับค่า '0' ในคอลัมน์แทนการรวมคำ นี่คือสิ่งที่ฉันได้ลองและอื่น ๆ : SELECT column1 + column2 AS column3 FROM table; SELECT column1 || column2 AS column3 FROM table; SELECT column1 + ' ' + column2 AS column3 FROM table; ใครช่วยบอกฉันหน่อยได้ไหมว่าฉันทำอะไรผิด?
106 mysql  sql 

2
วิธีบังคับให้ฐานข้อมูล SQL Server 2008 ออฟไลน์
ฉันจะบังคับให้ฐานข้อมูลของฉันเป็นแบบออฟไลน์ได้อย่างไรโดยไม่คำนึงถึงสิ่งใดหรือใครใช้อยู่แล้ว ฉันเหนื่อย: ALTER DATABASE database-name SET OFFLINE; แต่มันยังคงแขวนอยู่หลังจากผ่านไป 7 นาที ฉันต้องการสิ่งนี้เพราะฉันต้องการทดสอบสถานการณ์ ถ้าเป็นไปได้?

2
จะส่งคืนผลลัพธ์ของ SELECT ภายในฟังก์ชันใน PostgreSQL ได้อย่างไร?
ฉันมีฟังก์ชันนี้ใน PostgreSQL แต่ฉันไม่รู้ว่าจะส่งคืนผลลัพธ์ของแบบสอบถามอย่างไร: CREATE OR REPLACE FUNCTION wordFrequency(maxTokens INTEGER) RETURNS SETOF RECORD AS $$ BEGIN SELECT text, count(*), 100 / maxTokens * count(*) FROM ( SELECT text FROM token WHERE chartype = 'ALPHABETIC' LIMIT maxTokens ) as tokens GROUP BY text ORDER BY count DESC END $$ LANGUAGE plpgsql; แต่ฉันไม่รู้ว่าจะส่งคืนผลลัพธ์ของแบบสอบถามภายในฟังก์ชัน …

5
SQL เลือกแถวตามวันที่ล่าสุด
เมื่อใช้แบบสอบถามและผลลัพธ์ต่อไปนี้ฉันกำลังมองหารายการล่าสุดที่ ChargeId และ ChargeType ไม่ซ้ำกัน select chargeId, chargeType, serviceMonth from invoice CHARGEID CHARGETYPE SERVICEMONTH 1 101 R 8/1/2008 2 161 N 2/1/2008 3 101 R 2/1/2008 4 101 R 3/1/2008 5 101 R 4/1/2008 6 101 R 5/1/2008 7 101 R 6/1/2008 8 101 R 7/1/2008 ต้องการ: CHARGEID CHARGETYPE SERVICEMONTH …
106 sql  oracle 

3
MySQL: การเลือกหลายฟิลด์ให้เป็นตัวแปรหลายตัวในกระบวนงานที่เก็บไว้
ฉันสามารถเลือกหลายคอลัมน์ให้เป็นตัวแปรหลายตัวภายใน Select Query เดียวกันใน MySQL ได้หรือไม่ ตัวอย่างเช่น: DECLARE iId INT(20); DECLARE dCreate DATETIME; SELECT Id INTO iId, dateCreated INTO dCreate FROM products WHERE pName=iName; ไวยากรณ์ที่ถูกต้องสำหรับสิ่งนี้คืออะไร?

3
อัปเดตหรือแทรก (หลายแถวและคอลัมน์) จากแบบสอบถามย่อยใน PostgreSQL
ฉันกำลังพยายามทำสิ่งนี้ใน postgres: UPDATE table1 SET (col1, col2) = (SELECT col2, col3 FROM othertable WHERE othertable.col1 = 123); INSERT INTO table1 (col1, col2) VALUES (SELECT col1, col2 FROM othertable) แต่จุดที่ 1 ไม่สามารถทำได้แม้จะมี postgres 9.0 ตามที่กล่าวไว้ในเอกสาร ( http://www.postgresql.org/docs/9.0/static/sql-update.html ) จุดที่ 2 ดูเหมือนจะไม่ทำงาน ฉันได้รับข้อผิดพลาดต่อไปนี้: เคียวรีย่อยต้องส่งคืนคอลัมน์เดียวเท่านั้น หวังว่าใครบางคนจะมีวิธีแก้ปัญหาสำหรับฉัน มิฉะนั้นการสืบค้นจะใช้เวลานาน :( FYI: ฉันกำลังพยายามเลือกคอลัมน์ต่างๆจากหลาย ๆ ตารางและจัดเก็บไว้ในตารางชั่วคราวเพื่อให้แอปพลิเคชันอื่นสามารถดึงข้อมูลที่เตรียมไว้ได้อย่างง่ายดาย

7
จะแยกปีและเดือนจากวันที่ใน PostgreSQL โดยไม่ใช้ฟังก์ชัน to_char () ได้อย่างไร
ฉันต้องการเลือก sql: SELECT "year-month" from table group by "year-month" AND order by dateโดยที่ปี - เดือน - รูปแบบสำหรับวันที่ "1978-01", "1923-12" เลือก to_char ของการทำงานของ couseแต่ไม่ใช่ลำดับที่ "ถูกต้อง": to_char(timestamp_column, 'YYYY-MM')
106 sql  postgresql 

5
ให้สิทธิ์ดำเนินการสำหรับผู้ใช้ในโพรซีเดอร์ที่เก็บไว้ทั้งหมดในฐานข้อมูลหรือไม่
ฉันสร้างสคริปต์จากฐานข้อมูลเก่าสร้างฐานข้อมูลใหม่และนำเข้าข้อมูลทั้งหมดจากฐานข้อมูลเก่า อย่างไรก็ตามจนถึงตอนนี้ดีมากไม่มีผู้ใช้คนใดเรียกใช้สิทธิ์สำหรับโพรซีเดอร์ที่จัดเก็บไว้ ฉันรู้ว่าฉันสามารถใช้ได้ GRANT EXECUTE ON [storedProcName] TO [userName] อย่างไรก็ตามหากเป็นเพียงไม่กี่ขั้นตอนฉันมีประมาณ 100 ขั้นตอนดังนั้นวิธีใดที่ง่ายที่สุดสำหรับฉันในการให้สิทธิ์ดำเนินการเข้าถึงสำหรับผู้ใช้เฉพาะกับพวกเขาทั้งหมด? ขอบคุณล่วงหน้า.

7
วิธีที่เหมาะสมที่สุดในการเชื่อมต่อ / รวมสตริง
ฉันกำลังหาวิธีรวมสตริงจากแถวต่างๆให้เป็นแถวเดียว ฉันต้องการทำสิ่งนี้ในสถานที่ต่างๆดังนั้นการมีฟังก์ชันเพื่ออำนวยความสะดวกก็น่าจะดี ฉันได้ลองวิธีแก้ปัญหาโดยใช้COALESCEและFOR XMLแต่ก็ไม่ได้ตัดให้ฉัน การรวมสตริงจะทำสิ่งนี้: id | Name Result: id | Names -- - ---- -- - ----- 1 | Matt 1 | Matt, Rocks 1 | Rocks 2 | Stylus 2 | Stylus ฉันได้ดูฟังก์ชันการรวมที่กำหนดโดย CLRเพื่อทดแทนCOALESCEและFOR XMLแต่เห็นได้ชัดว่าSQL Azure ไม่รองรับสิ่งที่กำหนดโดย CLR ซึ่งเป็นความเจ็บปวดสำหรับฉันเพราะฉันรู้ว่าการใช้งานได้จะช่วยแก้ปัญหาได้มากมาย ปัญหาสำหรับฉัน มีวิธีแก้ปัญหาที่เป็นไปได้หรือวิธีการที่ดีที่สุดในทำนองเดียวกัน (ซึ่งอาจไม่เหมาะสมเท่า CLR แต่เดี๋ยวก่อนฉันจะเอาสิ่งที่ฉันได้รับ) ที่ฉันสามารถใช้เพื่อรวบรวมสิ่งของของฉันได้ไหม

12
ฉันจะรับแบบสอบถาม SQL ดิบที่คอมไพล์แล้วจากนิพจน์ SQLAlchemy ได้อย่างไร
ฉันมีวัตถุแบบสอบถาม SQLAlchemy และต้องการรับข้อความของคำสั่ง SQL ที่คอมไพล์โดยมีพารามิเตอร์ทั้งหมดที่ถูกผูกไว้ (เช่นไม่มี%sหรือตัวแปรอื่น ๆ ที่รอการเชื่อมโยงโดยคอมไพเลอร์คำสั่งหรือโปรแกรมภาษา MySQLdb เป็นต้น) การเรียกstr()ใช้การสืบค้นพบสิ่งนี้: SELECT id WHERE date_added <= %s AND date_added >= %s ORDER BY count DESC ฉันพยายามค้นหาใน query._params แต่มันเป็นคำสั่งที่ว่างเปล่า ฉันเขียนคอมไพเลอร์ของตัวเองโดยใช้ตัวอย่างsqlalchemy.ext.compiler.compilesมัณฑนากรนี้แต่แม้แต่คำสั่งก็ยังมี%sที่ฉันต้องการข้อมูล ฉันไม่สามารถเข้าใจได้ว่าเมื่อใดที่พารามิเตอร์ของฉันผสมกันเพื่อสร้างแบบสอบถาม เมื่อตรวจสอบออบเจ็กต์เคียวรีจะเป็นพจนานุกรมว่างเสมอ (แม้ว่าคิวรีจะทำงานได้ดีและเอ็นจิ้นจะพิมพ์ออกมาเมื่อคุณเปิดการบันทึกเสียงสะท้อน) ฉันเริ่มได้รับข้อความว่า SQLAlchemy ไม่ต้องการให้ฉันรู้แบบสอบถามพื้นฐานเนื่องจากมันทำลายลักษณะทั่วไปของอินเทอร์เฟซของนิพจน์ API กับ DB-API ที่แตกต่างกันทั้งหมด ฉันไม่สนใจว่าการสืบค้นจะถูกดำเนินการก่อนที่ฉันจะพบว่ามันคืออะไร ฉันแค่อยากจะรู้!
106 python  sql  mysql  sqlalchemy 

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