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

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

9
แทรกอัปเดต proc ที่จัดเก็บไว้บน SQL Server
ฉันได้เขียน proc ที่เก็บไว้ซึ่งจะทำการอัปเดตหากมีบันทึกอยู่มิฉะนั้นจะทำการแทรก มีลักษณะดังนี้: update myTable set Col1=@col1, Col2=@col2 where ID=@ID if @@rowcount = 0 insert into myTable (Col1, Col2) values (@col1, @col2) ตรรกะของฉันที่อยู่เบื้องหลังการเขียนด้วยวิธีนี้คือการอัปเดตจะทำการเลือกโดยปริยายโดยใช้ where clause และถ้าสิ่งนั้นส่งกลับ 0 ดังนั้นการแทรกจะเกิดขึ้น ทางเลือกอื่นในการทำเช่นนี้คือทำการเลือกจากนั้นขึ้นอยู่กับจำนวนแถวที่ส่งคืนไม่ว่าจะอัปเดตหรือแทรก สิ่งนี้ฉันถือว่าไม่มีประสิทธิภาพเพราะถ้าคุณจะทำการอัปเดตมันจะทำให้เกิดการเลือก 2 ครั้ง (การเรียกเลือกอย่างชัดเจนครั้งแรกและครั้งที่สองโดยนัยในตำแหน่งของการอัปเดต) หาก proc ทำการแทรกก็จะไม่มีความแตกต่างในด้านประสิทธิภาพ ตรรกะของฉันอยู่ที่นี่หรือไม่? นี่เป็นวิธีที่คุณจะรวมส่วนแทรกและอัปเดตลงใน proc ที่จัดเก็บไว้หรือไม่?


3
SQLite - แทนที่ส่วนหนึ่งของสตริง
เป็นไปได้หรือไม่ที่จะใช้SQLในSQLiteตารางเพื่อแทนที่ส่วนหนึ่งของสตริง ตัวอย่างเช่นฉันมีตารางที่หนึ่งในเขตข้อมูลมีเส้นทางไปยังไฟล์ เป็นไปได้ไหมที่จะเปลี่ยนชิ้นส่วนของสตริงเพื่อให้เช่น c:\afolder\afilename.bmp กลายเป็น c:\anewfolder\afilename.bmp เหรอ?
104 sql  sqlite 

6
แปลง varchar เป็น uniqueidentifier ใน SQL Server
ตารางที่ฉันไม่สามารถควบคุมสคีมามีคอลัมน์ที่กำหนดเป็น varchar (50) ซึ่งเก็บตัวบ่งชี้ที่ไม่ซ้ำกันในรูปแบบ 'a89b1acd95016ae6b9c8aabb07da2010' (ไม่มียัติภังค์) ฉันต้องการแปลงสิ่งเหล่านี้เป็นตัวบ่งชี้เฉพาะใน SQL เพื่อส่งผ่านไปยัง. Net Guid อย่างไรก็ตามบรรทัดแบบสอบถามต่อไปนี้ใช้ไม่ได้สำหรับฉัน: select cast('a89b1acd95016ae6b9c8aabb07da2010' as uniqueidentifier) select convert(uniqueidentifier, 'a89b1acd95016ae6b9c8aabb07da2010') และส่งผลให้: ข่าวสารเกี่ยวกับ 8169 ระดับ 16 สถานะ 2 บรรทัดที่ 1 การแปลงล้มเหลวเมื่อแปลงจากสตริงอักขระเป็น uniqueidentifier แบบสอบถามเดียวกันโดยใช้ตัวบ่งชี้เฉพาะที่มียัติภังค์ทำงานได้ดี แต่ข้อมูลจะไม่ถูกจัดเก็บในรูปแบบนั้น มีวิธีอื่น (ที่มีประสิทธิภาพ) ในการแปลงสตริงเหล่านี้เป็นตัวบ่งชี้เฉพาะใน SQL - ฉันไม่ต้องการทำในรหัส. Net

4
ส่งออกสคีมาฐานข้อมูลเป็นไฟล์ SQL
เป็นไปได้ไหมในMS SQL Server 2008การส่งออกโครงสร้างฐานข้อมูลไปยังT-SQLไฟล์ ฉันต้องการส่งออกไม่เพียง แต่สคีมาตารางเท่านั้น แต่ยังรวมถึงคีย์หลักคีย์ต่างประเทศข้อ จำกัด ดัชนีโพรซีเดอร์ที่เก็บไว้ประเภท / ฟังก์ชันที่ผู้ใช้กำหนด นอกจากนี้ฉันไม่ต้องการให้มีข้อมูลอยู่ในT-SQLไฟล์นี้ มีวิธีใดบ้างที่จะบรรลุสิ่งนั้น?


10
SQL Server -“ sys.functions” อยู่ที่ไหน
SQL Server 2005 มีsys.XXXมุมมองที่ยอดเยี่ยมเกี่ยวกับแค็ตตาล็อกระบบที่ฉันใช้บ่อย สิ่งที่ทำให้ฉันสะดุดคือเหตุใดจึงมีsys.proceduresมุมมองเพื่อดูข้อมูลเกี่ยวกับขั้นตอนการจัดเก็บของคุณ แต่ไม่มีsys.functionsมุมมองที่จะเห็นเหมือนกันสำหรับฟังก์ชันที่จัดเก็บของคุณ ไม่มีใครใช้ฟังก์ชั่นที่เก็บไว้? ฉันคิดว่ามันมีประโยชน์มากสำหรับเช่นคอลัมน์จากการคำนวณและอื่น ๆ ! มีเหตุผลที่เฉพาะเจาะจงsys.functionsขาดหายไปหรือเป็นเพียงสิ่งที่ถือว่าไม่สำคัญพอที่จะใส่ลงในsysมุมมองแค็ตตาล็อก? มีใน SQL Server 2008 หรือไม่ ไชโยมาร์ค

4
MySql - วิธีอัปเดตส่วนของสตริงหรือไม่
ฉันกำลังมองหาวิธีอัปเดตสตริงเพียงบางส่วนผ่านการสืบค้น MySQL ตัวอย่างเช่นถ้าฉันมี 10 ระเบียนทั้งหมดที่มี 'string' เป็นส่วนหนึ่งของค่าฟิลด์ (เช่น 'something / string', 'something / stringlookhere', 'something / string / etcetera' มีวิธีเปลี่ยน 'string 'to' anothervalue 'สำหรับแต่ละแถวผ่านหนึ่งแบบสอบถามเพื่อให้ผลลัพธ์เป็น' something / anothervalue ',' something / anothervaluelookhere ',' something / string / etcetera 'มีวิธีเปลี่ยน' anothervalue 'หรือไม่
104 mysql  sql  string  sql-update 

13
การแยกสตริงออกเป็นหลายแถวใน Oracle
ฉันรู้ว่าสิ่งนี้ได้รับคำตอบในระดับหนึ่งกับ PHP และ MYSQL แต่ฉันสงสัยว่ามีใครสามารถสอนวิธีที่ง่ายที่สุดในการแยกสตริง (คั่นด้วยจุลภาค) เป็นหลายแถวใน Oracle 10g (ควรเป็น) และ 11g ตารางมีดังนี้: Name | Project | Error 108 test Err1, Err2, Err3 109 test2 Err1 ฉันต้องการสร้างสิ่งต่อไปนี้: Name | Project | Error 108 Test Err1 108 Test Err2 108 Test Err3 109 Test2 Err1 ฉันได้เห็นโซลูชันที่เป็นไปได้สองสามข้อเกี่ยวกับสแต็ก แต่พวกเขาคิดเป็นคอลัมน์เดียวเท่านั้น (เป็นสตริงที่คั่นด้วยจุลภาค) ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.
104 sql  string  oracle  plsql  tokenize 


13
ข้อผิดพลาด SQL“ ORA-01722: หมายเลขไม่ถูกต้อง”
สิ่งที่ง่ายมากสำหรับใครบางคนส่วนแทรกต่อไปนี้กำลังให้ไฟล์ ORA-01722: หมายเลขไม่ถูกต้อง ทำไม? INSERT INTO CUSTOMER VALUES (1,'MALADY','Claire','27 Smith St Caulfield','0419 853 694'); INSERT INTO CUSTOMER VALUES (2,'GIBSON','Jake','27 Smith St Caulfield','0415 713 598'); INSERT INTO CUSTOMER VALUES (3,'LUU','Barry','5 Jones St Malvern','0413 591 341'); INSERT INTO CUSTOMER VALUES (4,'JONES','Michael','7 Smith St Caulfield','0419 853 694'); INSERT INTO CUSTOMER VALUES (5,'MALADY','Betty','27 Smith …

10
สร้างค่า int แบบสุ่มจาก 3 ถึง 6
เป็นไปได้ไหมใน Microsoft SQL Server สร้างค่า int แบบสุ่มจากต่ำสุดถึงสูงสุด (ตัวอย่าง 3-9, 15-99 เป็นต้น) ฉันรู้ว่าฉันสามารถสร้างจาก 0 ถึง Max แต่จะเพิ่ม Min border ได้อย่างไร? คำค้นหานี้สร้างค่าสุ่มจาก 1 ถึง 6 จำเป็นต้องเปลี่ยนจาก 3 เป็น 6 SELECT table_name, 1.0 + floor(6 * RAND(convert(varbinary, newid()))) magic_number FROM information_schema.tables เพิ่ม 5 วินาทีต่อมา : คำถามโง่ ๆ ขอโทษ ... SELECT table_name, 3.0 + …

7
จะเลือกจากแบบสอบถามย่อยโดยใช้ Laravel Query Builder ได้อย่างไร?
ฉันต้องการรับค่าด้วย SQL ต่อไปนี้โดยใช้ Eloquent ORM - SQL SELECT COUNT(*) FROM (SELECT * FROM abc GROUP BY col1) AS a; จากนั้นฉันพิจารณาสิ่งต่อไปนี้ - รหัส $sql = Abc::from('abc AS a')->groupBy('col1')->toSql(); $num = Abc::from(\DB::raw($sql))->count(); print $num; ฉันกำลังมองหาทางออกที่ดีกว่า โปรดบอกวิธีแก้ปัญหาที่ง่ายที่สุด

5
MIN / MAX เทียบกับ ORDER BY และ LIMIT
จากคำถามต่อไปนี้คุณจะพิจารณาวิธีใดที่ดีกว่า เหตุผลของคุณคืออะไร (ประสิทธิภาพของโค้ด, การบำรุงรักษาที่ดีขึ้น, WTFery น้อยลง) ... SELECT MIN(`field`) FROM `tbl`; SELECT `field` FROM `tbl` ORDER BY `field` LIMIT 1;
104 sql  mysql 

1
การพิมพ์ค่าของตัวแปรใน postgresql
ฉันมีฟังก์ชัน postgresql CREATE OR REPLACE FUNCTION fixMissingFiles() RETURNS VOID AS $$ DECLARE deletedContactId integer; BEGIN SELECT INTO deletedContactId contact_id FROM myContacts WHERE id=206351; -- print the value of deletedContactId variable to the console END; $$ LANGUAGE plpgsql; ฉันจะพิมพ์ค่าของ DeleteContactId ไปยังคอนโซลได้อย่างไร
104 sql  postgresql 

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