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

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

4
เลือกสิ่งที่มีอักขระมากกว่า / น้อยกว่า x
สงสัยว่าเป็นไปได้ไหมที่จะเลือกสิ่งที่มีอักขระมากกว่า / น้อยกว่า x ใน SQL ตัวอย่างเช่นฉันมีตารางพนักงานและฉันต้องการแสดงชื่อพนักงานทั้งหมดที่มีอักขระมากกว่า 4 ตัวในชื่อของพวกเขา นี่คือตารางตัวอย่าง ID EmpName Dept 1 Johnny ACC 2 Dan IT 3 Amriel PR 4 Amy HR
109 sql 

9
มีการเพิ่มอัตโนมัติใน sqlite หรือไม่?
ฉันพยายามที่จะสร้างตารางที่มีอัตโนมัติที่เพิ่มขึ้นprimary keyในSqlite3 ฉันไม่แน่ใจว่าเป็นไปได้จริงหรือไม่ แต่ฉันหวังว่าจะต้องกำหนดช่องอื่นเท่านั้น ตัวอย่างเช่น: CREATE TABLE people (id integer primary key auto increment, first_name varchar(20), last_name varchar(20)); จากนั้นเมื่อฉันเพิ่มมูลค่าฉันหวังว่าจะต้องทำเท่านั้น: INSERT INTO people VALUES ("John", "Smith"); เป็นไปได้หรือไม่? ฉันกำลังทำงานsqlite3ภายใต้cygwinWindows 7
109 sql  sqlite  cygwin 

8
หลีกเลี่ยงรายการที่ซ้ำกันใน INSERT INTO SELECT query ใน SQL Server
ฉันมีสองตารางต่อไปนี้: Table1 ---------- ID Name 1 A 2 B 3 C Table2 ---------- ID Name 1 Z ฉันต้องใส่ข้อมูลจากการTable1 Table2ฉันสามารถใช้ไวยากรณ์ต่อไปนี้: INSERT INTO Table2(Id, Name) SELECT Id, Name FROM Table1 อย่างไรก็ตามในกรณีของฉัน ID ที่ซ้ำกันอาจมีอยู่ในTable2(ในกรณีของฉันมันเป็นแค่ " 1") และฉันไม่ต้องการคัดลอกอีกครั้งเพราะจะทำให้เกิดข้อผิดพลาด ฉันสามารถเขียนสิ่งนี้: IF NOT EXISTS(SELECT 1 FROM Table2 WHERE Id=1) INSERT INTO Table2 (Id, name) SELECT Id, …

6
ฉันสามารถสร้างฟังก์ชันแบบใช้ครั้งเดียวในสคริปต์หรือขั้นตอนที่จัดเก็บได้หรือไม่?
ใน SQL Server 2005 มีแนวคิดเกี่ยวกับการใช้งานครั้งเดียวหรือฟังก์ชันโลคัลที่ประกาศภายในสคริปต์ SQL หรือ Stored Procedure หรือไม่ ฉันต้องการลบล้างความซับซ้อนบางอย่างในสคริปต์ที่ฉันกำลังเขียน แต่จำเป็นต้องสามารถประกาศฟังก์ชันได้ แค่สงสัย.

5
COUNT DISTINCT กับเงื่อนไข
ฉันต้องการนับจำนวนรายการที่แตกต่างกันในคอลัมน์ภายใต้เงื่อนไขบางประการเช่นหากตารางเป็นเช่นนี้: tag | entryID ----+--------- foo | 0 foo | 0 bar | 3 หากฉันต้องการนับจำนวนแท็กที่แตกต่างกันเป็น "จำนวนแท็ก" และนับจำนวนแท็กที่แตกต่างกันโดยมีรหัสรายการ> 0 เป็น "จำนวนแท็กบวก" ในตารางเดียวกันฉันควรทำอย่างไร ตอนนี้ฉันกำลังนับจากสองตารางที่แตกต่างกันโดยที่ในตารางที่สองฉันเลือกเฉพาะแถวที่มี entryID มากกว่าศูนย์ ฉันคิดว่าควรมีวิธีที่กระชับกว่านี้ในการแก้ปัญหานี้
109 sql 


17
จะพิมพ์ VARCHAR (MAX) โดยใช้ Print Statement ได้อย่างไร?
ฉันมีรหัสซึ่งคือ: DECLARE @Script VARCHAR(MAX) SELECT @Script = definition FROM manged.sys.all_sql_modules sq where sq.object_id = (SELECT object_id from managed.sys.objects Where type = 'P' and Name = 'usp_gen_data') Declare @Pos int SELECT @pos=CHARINDEX(CHAR(13)+CHAR(10),@script,7500) PRINT SUBSTRING(@Script,1,@Pos) PRINT SUBSTRING(@script,@pos,8000) ความยาวของสคริปต์อยู่ที่ประมาณ 10,000 ตัวอักษรและเนื่องจากฉันใช้คำชี้แจงการพิมพ์ซึ่งสามารถรองรับได้สูงสุด 8000 เท่านั้นดังนั้นฉันจึงใช้คำสั่งพิมพ์สองชุด ปัญหาคือเมื่อฉันมีสคริปต์ซึ่งมีความยาว 18000 อักขระแล้วฉันเคยใช้คำสั่งพิมพ์ 3 ชุด มีวิธีที่ฉันสามารถตั้งค่าจำนวนคำสั่งพิมพ์ขึ้นอยู่กับความยาวของสคริปต์ได้หรือไม่?

6
จะลบแถวบนสุด 1,000 แถวจากตารางโดยใช้ Sql Server 2008 ได้อย่างไร
ฉันมีตารางใน SQL Server ฉันต้องการลบ 1,000 แถวแรกออกจากมัน อย่างไรก็ตามฉันลองแล้ว แต่แทนที่จะลบแถวบนสุด 1,000 แถวมันจะลบแถวทั้งหมดในตาราง นี่คือรหัส: delete from [mytab] select top 1000 a1,a2,a3 from [mytab]

5
อะไรคือวิธีที่ดีที่สุดในการเข้าร่วมโต๊ะเดียวกันสองครั้ง
ซับซ้อนนิดหน่อย แต่ฉันมี 2 ตาราง สมมติว่าโครงสร้างเป็นดังนี้: *Table1* ID PhoneNumber1 PhoneNumber2 *Table2* PhoneNumber SomeOtherField สามารถรวมตารางได้ตาม Table1.PhoneNumber1 -> Table2PhoneNumber หรือ Table1.PhoneNumber2 -> Table2.PhoneNumber ตอนนี้ฉันต้องการรับชุดผลลัพธ์ที่มี PhoneNumber1, SomeOtherField ที่สอดคล้องกับ PhoneNumber1, PhoneNumber2 และ SomeOtherField ที่สอดคล้องกับ PhoneNumber2 ฉันคิด 2 วิธีในการทำสิ่งนี้ - ไม่ว่าจะโดยการเข้าร่วมบนโต๊ะสองครั้งหรือโดยการเข้าร่วมครั้งเดียวด้วย OR ในส่วนคำสั่ง ON วิธีที่ 1 : SELECT t1.PhoneNumber1, t1.PhoneNumber2, t2.SomeOtherFieldForPhone1, t3.someOtherFieldForPhone2 FROM Table1 t1 INNER …
108 sql  join 

5
มีไลบรารีตัวสร้างไดนามิก SQL ที่ดีใน Java หรือไม่? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ ใคร ๆ ก็รู้จักไลบรารีตัวสร้าง SQL ที่ดีสำหรับ Java เช่นSquiggle (ดูเหมือนจะไม่ได้รับการดูแลอีกต่อไป) โดยเฉพาะอย่างยิ่งโครงการในการพัฒนาที่ใช้งานอยู่ โดยเฉพาะอย่างยิ่งกับไวยากรณ์เช่นZend_Db_Selectสิ่งที่จะช่วยให้สร้างแบบสอบถามได้ String query = db.select().from('products').order('product_id');
108 java  sql  sqlbuilder 

8
เมื่อใดควรใช้ View แทน Table?
เมื่อใดควรใช้ View บนตารางจริง สิ่งนี้ควรคาดหวังว่าจะได้รับอะไรบ้าง? โดยรวมแล้วข้อดีของการใช้มุมมองบนตารางคืออะไร? ฉันไม่ควรออกแบบโต๊ะในแบบที่มุมมองตั้งแต่แรกหรือไม่?

7
วิธีที่รวดเร็วในการค้นหาจำนวนแถวของตารางใน PostgreSQL
ฉันต้องการทราบจำนวนแถวในตารางเพื่อคำนวณเปอร์เซ็นต์ ถ้าจำนวนรวมมากกว่าค่าคงที่ที่กำหนดไว้ล่วงหน้าฉันจะใช้ค่าคงที่ มิฉะนั้นฉันจะใช้จำนวนแถวจริง ฉันสามารถใช้SELECT count(*) FROM table. แต่ถ้าค่าคงที่ของฉันคือ500,000และฉันมี5,000,000,000แถวในตารางการนับแถวทั้งหมดจะเสียเวลามาก เป็นไปได้ไหมที่จะหยุดนับทันทีที่ค่าคงที่ของฉันเกิน ฉันต้องการจำนวนแถวที่แน่นอนตราบใดที่มันต่ำกว่าขีด จำกัด ที่กำหนด มิฉะนั้นหากการนับเกินขีด จำกัด ฉันจะใช้ค่าขีด จำกัด แทนและต้องการให้คำตอบเร็วที่สุด สิ่งนี้: SELECT text,count(*), percentual_calculus() FROM token GROUP BY text ORDER BY count DESC;
108 sql  postgresql  count  row 

6
T-SQL: การใช้ CASE ในคำสั่ง UPDATE เพื่ออัปเดตคอลัมน์บางคอลัมน์ขึ้นอยู่กับเงื่อนไข
ฉันสงสัยว่าเป็นไปได้หรือไม่ ฉันต้องการอัปเดตคอลัมน์ x หากเงื่อนไขเป็นจริงมิฉะนั้นคอลัมน์ y จะได้รับการอัปเดต UPDATE table SET (CASE (CONDITION) WHEN TRUE THEN columnx ELSE columny END) = 25 ฉันค้นหาจนหมดลองทำบางอย่างแล้วก็ไม่พบวิธีแก้ปัญหา ฉันคิดว่ามันเป็นไปไม่ได้ แต่ฉันคิดว่าฉันจะถามที่นี่และดูว่ามีใครทำมาก่อน ขอบคุณล่วงหน้า.
108 sql  sql-update  case 

6
ฉันจะลบจำนวนแถวคงที่ด้วยการเรียงลำดับใน PostgreSQL ได้อย่างไร
Наэтотвопросестьответына Stack Overflow нарусском : DELETE и LIMIT в PostgreSQL ฉันกำลังพยายามพอร์ตการสืบค้น MySQL เก่าไปยัง PostgreSQL แต่ฉันมีปัญหากับคำถามนี้: DELETE FROM logtable ORDER BY timestamp LIMIT 10; PostgreSQL ไม่อนุญาตให้มีการสั่งซื้อหรือ จำกัด ไวยากรณ์การลบและตารางไม่มีคีย์หลักดังนั้นฉันจึงไม่สามารถใช้เคียวรีย่อยได้ นอกจากนี้ผมต้องการที่จะรักษาพฤติกรรมที่แบบสอบถามลบว่าจำนวนที่กำหนดหรือบันทึก - ตัวอย่างเช่นถ้าตารางมี 30 แถว แต่พวกเขาทั้งหมดมีการประทับเวลาเดียวกันผมยังคงต้องการที่จะลบ 10 แม้ว่ามันจะไม่ได้เรื่อง ซึ่ง 10. ดังนั้น; ฉันจะลบจำนวนแถวคงที่ด้วยการเรียงลำดับใน PostgreSQL ได้อย่างไร แก้ไข:ไม่มีคีย์หลักหมายความว่าไม่มีlog_idคอลัมน์หรือคล้ายกัน อาความสุขของระบบเดิม!
108 sql  postgresql 

2
ประโยค JPQL IN: Java-Arrays (หรือ Lists, Sets ... )?
ฉันต้องการโหลดอ็อบเจ็กต์ทั้งหมดที่มีแท็กข้อความที่ตั้งค่าเป็นค่าใด ๆ จำนวนเล็กน้อย แต่โดยพลการจากฐานข้อมูลของเรา วิธีเชิงตรรกะในการดำเนินการนี้ใน SQL คือการสร้างอนุประโยค "IN" JPQL อนุญาตให้ใช้ IN แต่ดูเหมือนว่าต้องการให้ฉันระบุทุกพารามิเตอร์เป็น IN โดยตรง (เช่นใน "in (: in1,: in2,: in3)") มีวิธีบางอย่างในการระบุอาร์เรย์หรือรายการ (หรือคอนเทนเนอร์อื่น ๆ ) ที่ควรยกเลิกการควบคุมค่าของประโยค IN หรือไม่?
108 sql  orm  jpa  jpql  named-query 

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